☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
gitoxide logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N 🐛 CWE-22
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-82253

CVE-2026-82253 Path Traversal in gitoxide
📅 PUBLISHED: 2026-08-28 00:00 UTC 🔄 UPDATED: 2026-10-02 19:31 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.66%
👁️
0.66% probability
16.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Global License: Open Source
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 7.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: N Integrity None
A: N Availability None
7.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-82253 is a path traversal vulnerability in gitoxide (Rust crates gix <= 0.72.0 and gix-validate <= 0.10.0) that, when combined with a trust inheritance flaw in Submodule::open(), allows an attacker to craft a malicious .gitmodules file to read arbitrary git repository configuration — including embedded credentials — with full trust, bypassing safe-directory protections. The vulnerability affects any application built on gitoxide that processes untrusted git repositories, with a CVSS score of 7.5 (High) reflecting the network-based attack vector and high confidentiality impact. The flaw remains unpatched in older versions; the fix is available in gix 0.82.0 and gix-validate 0.11.1.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The vulnerability comprises two distinct flaws that combine to create a critical path traversal condition:

Flaw 1: Incomplete Submodule Name Validation (gix-validate)

The submodule name validation function in gix-validate uses the pattern name.find(b"..") to detect parent directory traversal sequences in submodule names. This function only checks the first occurrence of the .. byte sequence. A crafted name such as a..b/../../../.git/ bypasses this check because the first .. occurrence appears within a benign-looking component (a..b), while subsequent traversal sequences (../../../) are never inspected. The validation logic is fundamentally flawed as it operates on a "first match only" basis rather than scanning the entire string for traversal patterns.

Critically, the NVD description notes that this validation is never invoked in production code paths. This means that even the insufficient validation logic described above is not actually executed during normal repository processing — the entire validation layer is bypassed entirely in real-world usage. The presence of a broken validation function that is never called compounds the severity: not only is the check inadequate, but it is also absent from the execution path.

Flaw 2: Trust Inheritance in Submodule::open()

The Submodule::open() function in the gix crate clones the parent repository's git_dir_trust value (specifically Trust::Full) into the submodule object. This inheritance mechanism skips the ownership verification that would normally be performed when opening a repository from an untrusted source. When the parent repository itself was opened with full trust (e.g., because the user explicitly trusted it or it was in a safe directory context), the submodule inherits that full trust classification without independent verification.

Combined Attack Vector

The attack chain combines these two flaws: a malicious actor crafts a .gitmodules file containing a submodule entry with a name like a..b/../../../.git/. When a victim tool built on gitoxide processes this repository:

  1. The submodule name is not adequately validated (validation either fails to detect the traversal or is never invoked).
  2. The submodule open operation inherits Trust::Full from the parent repository.
  3. The ../../../ traversal components in the submodule name navigate the filesystem outside the repository directory.
  4. The .git/ component targets a git repository directory at the traversed location.
  5. When the submodule configuration is read, gitoxide processes it with full trust, without safe-directory protection.

This allows an attacker to read arbitrary git repository configuration files (such as .git/config containing embedded credentials, remote URLs, or other sensitive configuration) from a victim's filesystem.

Attack Surface

The attack surface includes any application that uses gitoxide to process untrusted git repositories — including automated CI/CD pipelines ingesting pull requests, code scanning tools that analyze cloned repositories, package managers, or any server-side tool that accepts repository URLs or files from untrusted sources.

Exploitation Scenarios

Based strictly on the NVD description and available data:

Step 1: Reconnaissance/Target Identification An attacker identifies a target application built on gitoxide (gix <= 0.72.0 or gix-validate <= 0.10.0) that processes uploaded or fetched git repositories. Common targets include CI/CD systems, repository analysis platforms, or development tools that accept repository URLs or .gitmodules files from external sources. The attacker may fingerprint the target by submitting a benign repository and observing behavior, or may directly craft a malicious payload.

Step 2: Triggering the Vulnerability Class The attacker creates a git repository containing a malicious .gitmodules file. This file defines a submodule with a crafted name that includes path traversal predicates — specifically, a name containing .. sequences that are not the first occurrence in the string (e.g., a..b/../../../.git/). The attacker delivers this repository to the target (e.g., via a pull request, URL submission, or file upload).

Step 3: Payload/Execution at Vulnerability-Class Level Since specific function names beyond those in the NVD description are not available, the attack mechanism operates at the path traversal class level: because submodule naming is trusted and path traversal sequences are interpreted during submodule path resolution, a crafted .gitmodules file causes the target application to follow a path pointing outside the repository root. The trust inheritance flaw (Trust::Full cloned from parent repository, ownership verification skipped) ensures the traversed path is processed without safe-directory checks. The target application reads the .git/config (or similar configuration file) of the repository located at the traversed path.

Step 4: Post-Exploitation Impact Successful exploitation results in confidentiality compromise: the attacker extracts git repository configuration data, including embedded credentials (e.g., stored access tokens, authentication credentials in remote URLs, signing keys), repository URLs, and potentially other sensitive configuration data. These credentials can then be used for lateral movement, access to private repositories, or further attacks against connected systems. The CVSS vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N) confirms network-exposed, low-complexity exploitation requiring no privileges and no user interaction.

Note: No public PoC is available; the attack chain is inferred from the vulnerability class and mechanism described in the NVD data. The exact exploitation procedure may require refinement based on the specific target application's use of gitoxide.

Impact Assessment

CVSS Breakdown (from provided vector):

  • Attack Vector: Network (AV:N) — exploitable remotely
  • Attack Complexity: Low (AC:L) — no special conditions required
  • Privileges Required: None (PR:N) — unauthenticated exploitation
  • User Interaction: None (UI:N) — no victim action needed
  • Scope: Unchanged (S:U)
  • Confidentiality: High (C:H) — significant data exposure
  • Integrity: None (I:N) — no data modification
  • Availability: None (A:N) — no denial of service

Business Impact:

  • Credential Exposure: The primary impact is the exfiltration of embedded credentials from git repository configuration files. In CI/CD environments, .git/config files commonly contain tokens or URL-embedded credentials that provide access to container registries, code repositories, artifact stores, and cloud deployment targets.
  • Trust Boundary Violation: The vulnerability bypasses safe-directory protections, compromising the trust model of git tooling. Applications relying on gitoxide's security guarantees are exposed.
  • Supply Chain Risk: Because gitoxide is a Rust crate used by downstream applications, the vulnerability propagates to all dependent tools. Supply chain compromise potential is elevated given the library's widespread use in Rust-based git tooling.
  • Blast Radius: Any application built with affected gitoxide versions that processes untrusted repositories is vulnerable. This includes server-side tools, CI systems, and desktop applications.
  • CVSS Score: 7.5 (High) reflects the high confidentiality impact achievable without privileges or user interaction from a network position.

Detection Guidance

Sigma Rule

title: Gitoxide Submodule Path Traversal via Malicious .gitmodules
id: 0f8cd674-9e2e-4f87-a5c7-2e6b5c2a8d2e
status: experimental
description: Detects attempts to create or process git submodules with path traversal sequences in submodule names, targeting gitoxide CVE-2026-82253
author: valtersit.com Threat Intelligence
date: 2026/01/01
tags:
    - attack.t1190
    - attack.collection
    - cve.2026.82253
logsource:
    category: process_creation
    product: linux
detection:
    selection_gitmodules:
        Image|endswith:
            - '/git'
            - '/gix'
        CommandLine|contains:
            - '.gitmodules'
    selection_traversal:
        CommandLine|contains:
            - '../../'
            - '..\\..\\'
            - 'a..b/'
    selection_gix_process:
        Image|endswith:
            - '/gix'
    condition: selection_gitmodules and selection_gix_process and (selection_traversal or selection_submodule_open)
    selection_submodule_open:
        CommandLine|contains: 'submodule'
falsepositives:
    - Legitimate monorepos with unusual submodule naming conventions
level: high

YARA Rule

rule gitoxide_path_traversal_submodule
{
    meta:
        author = "valtersit.com Threat Intelligence"
        description = "Detects malicious .gitmodules files exploiting CVE-2026-82253"
        cve = "CVE-2026-82253"
        date = "2026-01-01"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-82253"
        severity = "high"
    strings:
        $submodule_header = "[submodule"
        $traversal1 = "..\\..\\" ascii
        $traversal2 = "../../" ascii
        $git_dir = ".git/" ascii
        $double_dot_prefix = ".." ascii
        $name_keyword = "name = " ascii ascii wide
    condition:
        $submodule_header and $git_dir and (
            ($traversal1 or $traversal2) or
            ($double_dot_prefix and $name_keyword)
        ) and filesize < 10KB
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-82253 Gitoxide Submodule Path Traversal Attempt"; flow:established,to_server; content:"[submodule"; http_client_body; content:"name"; http_client_body; distance:0; content:".."; http_client_body; distance:0; content:"./"; http_client_body; distance:0; content:".."; http_client_body; distance:0; content:".git"; http_client_body; distance:0; classtype:attempted-user; sid:2026822531; rev:1; metadata:created_at 2026_01_01, updated_at 2026_01_01;)

Elastic Detection

any where
  process.name in ("git", "gix") and
  process.args contains ".gitmodules" and
  (
    process.args matches ".*\\.\\./.*\\.\\./.*\\.git.*" or
    process.args matches ".*\\.\\.\\\\.*" or
    (process.args matches ".*\\.\\.+.*" and process.args matches ".*submodule.*")
  )

Splunk SPL Query

index=main sourcetype=process_creation
| search (Image=*git* OR Image=*gix*) 
| search (CommandLine=*.gitmodules*)
| rex field=CommandLine ".*(\.\./\.\./\.\./|\.\.\\\.\.\\.*).*"
| eval cve_match=if(match(CommandLine, ".*\.\./.*\.\./.*\.git.*"), "true", "false")
| where cve_match="true"
| table _time, Image, CommandLine, User, ParentProcess
| sort -_time

Wazuh OSSEC Rule

<group name="gitoxide,">
  <rule id="100253" level="12">
    <if_sid>510, 511</if_sid>
    <match>\.gitmodules</match>
    <regex>\.\./\.\.</regex>
    <description>CVE-2026-82253: Gitoxide submodule path traversal detected in process command line</description>
    <group>cve_2026_82253,</group>
    <mitre>
      <id>T1190</id>
    </mitre>
  </rule>
  <rule id="100254" level="12">
    <if_sid>100253</if_sid>
    <regex>\.\./.*\.git</regex>
    <description>CVE-2026-82253: Gitoxide path traversal targeting .git directory via submodule open</description>
    <group>cve_2026_82253,</group>
    <mitre>
      <id>T1190</id>
    </mitre>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 0/4 — UNPATCHED (no patch evidence from any tracked source)

1. Immediate Mitigations (until patched):

  • Do not process git repositories from untrusted sources with gitoxide-based tools.
  • If gitoxide-based tools must process untrusted repositories, isolate them in a sandboxed environment (container, VM) with restricted filesystem access.
  • Audit existing repositories for suspicious .gitmodules files containing path traversal sequences in submodule names.
  • Implement network-level monitoring for attempted delivery of repositories with malicious .gitmodules content.
  • Consider blocking git repository uploads or URL submissions to affected applications until patches are applied.

2. Patch/Upgrade Steps:

  • Upgrade gix to version 0.82.0 or later.
  • Upgrade gix-validate to version 0.11.1 or later.
  • Verify that all dependencies using gitoxide are updated to versions including the fix.
  • After upgrading, test that submodule name validation is invoked in production code paths (addressing both the bypass and the missing validation call).
  • Review application code to ensure Submodule::open() is updated to not blindly inherit trust from parent repositories.

3. Long-Term Hardening:

  • Implement defense-in-depth: add application-level validation of submodule names before passing to gitoxide functions, rejecting any name containing .. sequences or path separators.
  • Adopt the principle of least privilege for git repository processing: run tools with minimal filesystem access and ensure safe-directory protections are enforced at the OS level.
  • Add patches to validate trust inheritance in gitoxide-based applications — verify repository ownership before processing submodules.
  • Monitor gitoxide release notes and security advisories for related vulnerabilities in submodule handling.
  • Consider implementing a repository content filter that scans for [submodule] sections and validates path patterns before processing.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-82253
  2. CWE-22 Improper Limitation of a Pathname to a Restricted Directory: https://cwe.mitre.org/data/definitions/22.html
  3. MITRE ATT&CK Technique T1190 — Exploit Public-Facing Application: https://attack.mitre.org/techniques/T1190/
  4. EPSS (Exploit Prediction Scoring System): Not yet scored by FIRST.org — monitor https://www.first.org/epss/ for updates.

No known threat actor campaigns or exploit-in-the-wild evidence are available at the time of this report. The vulnerability is not listed in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public PoC or exploit code has been identified.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"git" "gix"
product:"gitoxide"
http.html:".gitmodules" "gix"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-82253/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.