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

CVE-2026-82249

CVE-2026-82249 Vulnerability in Gitoxide
📅 PUBLISHED: 2026-08-28 00:00 UTC 🔄 UPDATED: 2026-09-23 20:37 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.17%
👁️
0.17% probability
4.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1552
👁️
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 3.1
AV: N Attack Vector Network
AC: H Attack Complexity High
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: L Confidentiality Low
I: N Integrity None
A: N Availability None
3.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-82249 is a credential-leakage vulnerability in gitoxide, a Rust-based Git implementation, affecting all versions prior to 0.38.2. The flaw allows an attacker who can supply a crafted URL—containing an embedded carriage return character—to inject additional protocol fields into credential helper communications, causing the helper to return credentials intended for an attacker-specified host rather than the original request target. With a CVSS score of 3.1 (Low severity), successful exploitation requires user interaction and is constrained by high attack complexity, but it exposes a meaningful credential-integrity gap for enterprise environments relying on gitoxide in automated pipelines or CI/CD systems.

⚡ 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 resides in gitoxide's handling of URL values passed to credential helpers—standard Git-compatible components that retrieve or store authentication secrets (usernames, passwords, tokens) for remote repositories. According to the NVD description, gitoxide versions before 0.38.2 fail to validate carriage return (\r, ASCII 0x0D) characters embedded within URLs before forwarding them to credential helpers.

The credential helper protocol, defined by Git, is a line-oriented plaintext protocol. Each field is expected to reside on a single line, with fields separated by newlines. The carriage return character is not part of the structural grammar of this protocol—it is not a recognized field terminator. However, some real-world credential helper implementations treat \r\n as a line boundary, or fail to strip bare \r before parsing subsequent input. If gitoxide forwards a URL like https://example.com/\rprotocol=https, the crafted \r may be interpreted by the helper as a record delimiter, causing the injected protocol=https field (or any other attacker-controlled field) to be parsed as a legitimate protocol directive.

This is a classic CRLF/LF injection weakness that falls squarely under CWE-116 (Improper Encoding or Escaping of Output). The absence of output sanitization before forwarding user-influenced data into a structured protocol boundary allows an attacker to break out of the intended field context and inject spurious key/value pairs.

The attack surface includes any scenario where gitoxide accepts URL input from untrusted sources—for example, when cloning from a repository URL gleaned from a malicious Git link embedded in a webpage or email, or when processing a clone command whose URL argument is attacker-controlled. The natural filter is the credential helper interaction: if no credentials are required, no helper invocation occurs and the vulnerability cannot be triggered. However, in environments where helpers are preconfigured (e.g., ~/.git-credentials, the Windows Credential Manager, or custom corporate credential brokers), automation that clones from externally sourced URLs becomes inherently at risk.

The NVD description does not enumerate specific function names, module paths, or exact helper protocol field names beyond the general "helper protocol fields" phrasing. Detailed implementation specifics are absent from the public record; however, the failure mode class—unvalidated control characters in protocol-boundary boundaries—is well understood as an input/output encoding deficiency.


Exploitation Scenarios

Reconnaissance / Target Identification: An attacker must identify a victim target—an organization using gitoxide in a context where a credential helper is configured and where the tool can be induced to process a URL containing a carriage return. Common targets include CI/CD pipelines that clone repositories from curated URLs (including those fetched from webhooks or external feeds), developer workstations using gitoxide-based clients, or security tooling that parses Git URLs.

Flaw Trigger: The attacker needs the victim to issue a gitoxide command—typically a clone, fetch, or push—where the URL argument includes an embedded \r. If the clone URL is sourced from an untrusted feed (e.g., a link in a phishing email, a webhook payload, or a compromised package manifest referencing a Git dependency), the attacker controls that string directly.

Payload / Execution Method (vulnerability-class level):
The attacker constructs a URL of the form:

https://valid-host.example/path\r<injected-field>=<value>

During the credential helper handshake, gitoxide writes the URL to the helper's stdin. Because the \r is not stripped or encoded, the helper treats it as a line terminator (or parses the remainder on a new logical line). The attacker injects additional helper protocol fields—for example, host=attacker-controlled-host or username=<known-value>—thereby overwriting or supplementing the fields gitoxide originally intended to pass. The helper then retrieves or authenticates against the attacker-designated host and returns credentials; gitoxide reads those credentials and binds them to the original (victim-requested) URL.

Post-Exploitation Impact: Successful exploitation results in disclosure of stored credentials to an attacker-controlled host, or authorization of the victim's tooling to an unintended endpoint. This can lead to: (a) exfiltration of corporate repository credentials; (b) impersonation of the victim in downstream Git operations; (c) lateral movement if the leaked credentials are reused across services. Crucially, the confidentiality impact is limited to the credential material itself—CVSS assigns a Confidentiality subscore of Low (C:L), with no integrity or availability impact.

No public PoC exists and no exploit code is publicly available at this time. The attack chain described above is inferred from the NVD class-level description and protocol-level understanding of Git credential helpers.


Impact Assessment

Severity Context: CVSS 3.1 base score 3.1 (Low). Attack Vector: Network (AV:N) — the attack requires no physical access. Attack Complexity: High (AC:H) — successful exploitation depends on the target using gitoxide in a network-accessible context with a configured credential helper, plus favorable helper parsing behavior. Privileges Required: None (PR:N). User Interaction: Required (UI:R) — the victim must execute gitoxide with the crafted URL. Scope: Unchanged (S:U). Confidentiality Impact: Low (C:L) — only a single credential set is disclosed per exploitation event. Integrity and Availability: None.

Business Impact: For enterprises, the practical blast radius is concentrated in CI/CD systems and developer tooling. A single leaked credential—particularly a service account token or a personal access token with repository write access—can lead to unauthorized repository modification, code exfiltration, or downstream supply-chain compromise. Because gitoxide is frequently embedded in Rust-based developer tools and automation scripts, affected surfaces may be broader than initially apparent.

Affected Systems: All gitoxide installations running versions < 0.38.2. No specific OS or architecture constraints are stated in the public advisory. Given the Rust ecosystem lineage, the software likely runs on Windows, Linux, and macOS.

CISA KEV Status: Not listed. No evidence of exploitation in the wild, no known threat-actor campaigns, no public exploit code.


Detection Guidance

Sigma Rule

title: Gitoxide Credential Helper Injection via Carriage Return
id: a1b3c4d5-e6f7-4a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects URLs containing carriage return characters passed to git/gitoxide credential helper contexts, indicative of CVE-2026-82249 exploitation attempts.
author: ValtersIT Threat Intelligence
date: 2026/08/01
logsource:
    category: process_creation
    product: linux
detection:
    selection_git:
        Image|endswith: 'gix'
    selection_url:
        CommandLine|contains:
            - '%0d'
            - '\r'
            - '\x0d'
    condition: selection_git and selection_url
falsepositives:
    - Legitimate URLs containing encoded CRLF in unusual path segments (rare)
level: medium
tags:
    - attack.t1552
    - cve.2026.82249

YARA Rule

rule Gitoxide_Credential_Helper_CRLF_Injection {
    meta:
        author = "ValtersIT Threat Intelligence"
        date = "2026-08-01"
        description = "Detects strings containing bare carriage returns adjacent to credential-helper-relevant protocol keywords, indicative of CVE-2026-82249 payloads."
        cve_id = "CVE-2026-82249"
        reference = "NVD description"
    strings:
        $crlf1 = { 0D 0A 68 6F 73 74 3D }          // \r\nhost=
        $crlf2 = { 0D 0A 70 72 6F 74 6F 63 6F 6C 3D } // \r\nprotocol=
        $crlf3 = { 0D 0A 75 73 65 72 6E 61 6D 65 3D } // \r\nusername=
        $crlf4 = { 0D 0A 70 61 73 73 77 6F 72 64 3D } // \r\npassword=
        $bare_cr = { 0D 00 }  // bare \r not followed by \n, in binary streams
        $url_schemes = "https://" ascii wide
    condition:
        (any of ($crlf*)) and ($url_schemes)
}

Suricata IDS Rule

alert http any any -> $HOME_NET any (msg:"CVE-2026-82249 Gitoxide Credential Helper CRLF Injection Attempt"; flow:established,to_server; content:"gix"; http.header_names; content:"|0d|"; http.uri; content:"host="; http.uri; fast_pattern; classtype:attempted-recon; sid:2026822491; rev:1; metadata:created_at 2026_08_01, updated_at 2026_08_01, attack_target client, deployment Perimeter, signature_severity Major, tag cve-2026-82249, tag credential-theft;)

Elastic Detection

process where event.action == "exec" and
  (
    process.name == "gix" or process.name == "gix-*"
  ) and
  process.args : (
    "*%0d*",
    "*\\r*",
    "*\\x0d*"
  )

Splunk SPL Query

index=main sourcetype="WinEventLog:Sysmon" EventCode=1
| where Image LIKE "%gix%"
| regex CommandLine="(?i)(%0d|\\r|\\x0d)"
| table _time, host, User, Image, CommandLine
| search CommandLine = "*clone*" OR CommandLine = "*fetch*" OR CommandLine = "*push*"
| stats count by host, User, CommandLine

Wazuh OSSEC Rule

<group name="gitoxide,">
  <rule id="100237" level="10">
    <if_sid>5715</if_sid>
    <match>gix.*(\%0d|\\\\r|\\\\x0d)</match>
    <description>CVE-2026-82249: carriage return detected in gitoxide URL argument — possible credential helper injection.</description>
    <group>credential_access,attack.t1552,</group>
    <mitre>
      <id>T1552</id>
    </mitre>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 0/4 — UNPATCHED. No vendor advisory, no patch commit, and no fixed version beyond the upstream release volume (0.38.2 is the first version containing the fix) have been confirmed by ValtersIT tracked sources. Exercise caution: treat 0.38.2 as the presumed fixed version per the NVD description, but validate at your own upgrade time.

  1. Immediate Mitigations (today):

    • Block or hard-filter URLs containing unescaped carriage return characters (\r, %0d, \x0d) at the network proxy or egress filter layer when such URLs originate from untrusted sources.
    • Disable credential helpers in gitoxide deployments used only in low-trust network zones. Use environment variable credential injection (e.g., GIT_ASKPASS) or temporary in-line URL credentials where the risk is dismissed.
    • If feasible, pin gitoxide usage to trusted repository URLs only. Reject any URL containing a raw \r before it reaches the gitoxide binary.
  2. Patch / Upgrade Steps:

    • Upgrade to gitoxide 0.38.2 or later. Verify the release's changelog for a fix note referencing credential, carriage return, or CRLF when available.
    • Update any Rust projects that depend on gitoxide as a library via crates.io / Cargo — run cargo update -p gix and re-verify your lock file.
    • Rebuild/publish CI pipeline images that embed gitoxide to ensure the patched binary is in use.
  3. Long-Term Hardening:

    • Adopt structured URL parsing in all internal tooling: construct URLs from typed parts rather than concatenating user-provided strings.
    • Deploy URL sanitization middleware that rejects control characters (ASCII < 0x20) in any externally sourced URL before it reaches Git clients.
    • Periodically review credential helper configuration company-wide. Restrict helper usage to least-privilege accounts, and use per-repository scoped credentials where possible.
    • Monitor for CVE-2026-82249-specific payload patterns in your network telemetry as outlined in the detection section, and update detection rules post-patch to capture regression attempts.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-82249
  2. Gitoxide project (affected-component source): https://github.com/GitoxideLabs/gitoxide
  3. CWE-116 — Improper Encoding or Escaping of Output: https://cwe.mitre.org/data/definitions/116.html
  4. CISA Known Exploited Vulnerabilities Catalog (not currently listed): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
  5. Git Credential Helper Protocol Documentation (referenced for mechanism): https://git-scm.com/docs/gitcredentials

At the time of writing, no threat actor campaigns, exploit-in-the-wild evidence, or PoC analysis exist for CVE-2026-82249. This report will be updated as additional intelligence becomes available.

👁️ 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.

gitoxide
gix credential
gitoxide http
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-82249/ · 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.