CVE-2026-91986
gitoxide gix-transport before 0.59.2 CR/LF/NUL Injection
gitoxide gix-transport before 0.59.2 fails to filter control characters in git-daemon connect requests, allowing attackers to inject NUL/CR/LF bytes via crafted git URLs. Attackers can inject extra NUL-delimited protocol fields to spoof virtual hosts or inject newlines into daemon requests and logs.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Passive
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
5.3
gitoxide gix-transport before 0.59.2 CR/LF/NUL Injection
gitoxide gix-transport before 0.59.2 fails to filter control characters in git-daemon connect requests, allowing attackers to inject NUL/CR/LF bytes via crafted git URLs. Attackers can inject extra NUL-delimited protocol fields to spoof virtual hosts or inject newlines into daemon requests and logs.
- Record
CVE-2026-91986- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 5.4 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N - Weakness
- CWE-74
- Updated
- 2026-11-02
EUVDEUVD-2026-78657
5.3
gitoxide gix-transport before 0.59.2 fails to filter control characters in git-daemon connect requests, allowing attackers to inject NUL/CR/LF bytes via crafted git URLs. Attackers can inject extra NUL-delimited protocol fields to spoof virtual hosts or inject newlines into daemon requests and logs.
- Record
EUVD-2026-78657- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-7849-h6h3-vww8
5.3
gitoxide gix-transport before 0.59.2 fails to filter control characters in git-daemon connect...
gitoxide gix-transport before 0.59.2 fails to filter control characters in git-daemon connect requests, allowing attackers to inject NUL/CR/LF bytes via crafted git URLs. Attackers can inject extra NUL-delimited protocol fields to spoof virtual hosts or inject newlines into daemon requests and logs.
- Record
GHSA-7849-h6h3-vww8- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.4 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N - Weakness
- CWE-74
- Updated
- 2026-11-02
NVD
5.3
gitoxide gix-transport before 0.59.2 fails to filter control characters in git-daemon connect requests, allowing attackers to inject NUL/CR/LF bytes via crafted git URLs. Attackers can inject extra NUL-delimited protocol fields to spoof virtual hosts or inject newlines into daemon requests and logs.
- Record
CVE-2026-91986- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.4 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N - Weakness
- CWE-74
- Updated
- 2026-11-02
OSV
5.3
gitoxide gix-transport before 0.59.2 CR/LF/NUL Injection
gitoxide gix-transport before 0.59.2 fails to filter control characters in git-daemon connect requests, allowing attackers to inject NUL/CR/LF bytes via crafted git URLs. Attackers can inject extra NUL-delimited protocol fields to spoof virtual hosts or inject newlines into daemon requests and logs.
- Record
CVE-2026-91986- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-74
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-91986
5.3
gitoxide gix-transport before 0.59.2 fails to filter control characters in git-daemon connect requests, allowing attackers to inject NUL/CR/LF bytes via crafted git URLs. Attackers can inject extra NUL-delimited protocol fields to spoof virtual hosts or inject newlines into daemon requests and logs.
- Record
DEBIAN-CVE-2026-91986- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
Show 9 moreShow less
OSVUBUNTU-CVE-2026-91986
5.3
gitoxide gix-transport before 0.59.2 fails to filter control characters in git-daemon connect requests, allowing attackers to inject NUL/CR/LF bytes via crafted git URLs. Attackers can inject extra NUL-delimited protocol fields to spoof virtual hosts or inject newlines into daemon requests and logs.
- Record
UBUNTU-CVE-2026-91986- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 5.4 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
OSVAZL-103263 No score
CVE-2026-91986 affecting package rust 1.75.0-31
gitoxide gix-transport before 0.59.2 fails to filter control characters in git-daemon connect requests, allowing attackers to inject NUL/CR/LF bytes via crafted git URLs. Attackers can inject extra NUL-delimited protocol fields to spoof virtual hosts or inject newlines into daemon requests and logs.
- Record
AZL-103263- Updated
- 2026-11-05
OSVAZL-103266 No score
CVE-2026-91986 affecting package rust 1.98.1-1
gitoxide gix-transport before 0.59.2 fails to filter control characters in git-daemon connect requests, allowing attackers to inject NUL/CR/LF bytes via crafted git URLs. Attackers can inject extra NUL-delimited protocol fields to spoof virtual hosts or inject newlines into daemon requests and logs.
- Record
AZL-103266- Updated
- 2026-11-05
OSVopenSUSE-SU-2026:11857-1 No score
gitoxide-0.58.0-2.1 on GA media
These are all security issues fixed in the gitoxide-0.58.0-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11857-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11923-1 No score
openai-codex-0.158.0-1.1 on GA media
These are all security issues fixed in the openai-codex-0.158.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11923-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:12223-1 No score
stgit-2.7.0-1.1 on GA media
These are all security issues fixed in the stgit-2.7.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12223-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21955-1 No score
Security update for gitoxide
This update for gitoxide fixes the following issues:
Changes in gitoxide:
- CVE-2026-91986: gix-transport CR/LF/NUL injection into git-daemon connect request via crafted git URL path, allowing virtual-host spoofing (boo#1281749)
- Record
openSUSE-SU-2026:21955-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:22126-1 No score
Security update for gitoxide
This update for gitoxide fixes the following issues:
Changes in gitoxide:
Update to version 0.60.0:
- BREAKING: remove the full-screen progress mode: the --progress and --progress-keep-open flags and the prodash-render-tui feature are gone, line progress stays the only progress UI
- Trace output is now independently configurable with a bounded -t/--trace counter, separate from verbose and progress rendering
- Add gix worktree add (alias create) and worktree remove
- Various security improvements and more consistent error handling across the plumbing crates
-
Refresh the vendored dependencies. The linked graph still carries MPL-2.0 only (uluru, option-ext); the License tag is unchanged.
-
Restore the explicit prodash feature dropped in the gix-utils 0.5.0 dep: migration, which broke workspace-wide cargo metadata --features as run by cargo-auditable.
Update to version 0.59.0:
- Ships gix-transport 0.60.0, which rejects NUL/LF in
git-daemon connect requests: drops the backported fix
for CVE-2026-91986 (boo#1281749), now fixed upstream
- gix-transport-reject-control-bytes.patch
- New gix editor command with Git-compatible selection
- Raise the Rust floor to 1.88 (upstream MSRV, dua-core)
- Refresh the vendored dependencies. The linked graph still carries MPL-2.0 only (uluru, option-ext); the License tag is unchanged.
Update to 0.58.0:
- gix tix is now the full gix-tix platform embedded in the plumbing command instead of a second parser and dispatcher, so standalone and plumbing invocations behave alike and amend and spill are reachable through gix tix
- tix decorates commits checked out by other main or linked worktrees with light-blue name@ labels, keeps the marker for the checkout it was opened from, and watches linked HEAD and worktree membership so the decorations stay current
- tix gained -w/--worktrees to add every resolved worktree HEAD to the traversal tips without weakening hidden-revision exclusions
- gix tix no longer accepts --screen: the interactive history always owns the alternate screen, so the automatic and half-screen modes were removed
- Refresh the vendored dependencies. The linked graph gains a second MPL-2.0 crate, option-ext, reached through the directories and dirs-sys crates that gix-tix newly depends on; the License tag already covers MPL-2.0 and is unchanged.
Update to 0.57.0:
- Add gix clone --revision, and PrepareFetch::with_revision(), for cloning a single revision named by a full ref, HEAD or a full object id: HEAD is detached to the fetched commit, no ordinary refs are created, no fetch refspec is persisted and tag following is disabled
- Fix a panic when a full object id was passed to with_ref_name(), which produced an object-id refspec mapping that clone expected to be named
- Rewrite relative date parsing to follow git: several count and unit pairs are applied in input order, as in "2 days 3 hours ago", counts may be spelled out, any non-alphanumeric byte separates the parts, the trailing "ago" is optional, and a leading "@" may introduce a timestamp. Month and year steps now walk the calendar fields, so a day past the end of the shorter target month rolls over into the following month
- gix commit verify now checks signatures through the library rather than spawning gpg itself, so the configured gpg program is honoured and an invalid or untrusted signature is reported as such
- Fix the conflict stage labels printed by gix revision explain, which called stage 0 "base"; they are now unconflicted, base, ours and theirs
- Reject a TREE index extension whose child entry counts overflow instead of wrapping while verifying them
- Replace the jwalk directory walker with dua-core
- Refresh the vendored dependencies. The licence set is unchanged: re-derived over the new vendor tree, uluru (MPL-2.0) is…
- Record
openSUSE-SU-2026:22126-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:22204-1 No score
Security update for stgit
This update for stgit fixes the following issues:
Changes in stgit:
- Update to version 2.7.0:
- Allow unambiguous command shorthands, opt-in with
stgit.infer-commands. - Accept git approxidate spellings for dates, e.g. "2 days ago" and "@<epoch>"; relative dates are now anchored in the local time zone.
- Run
git mergetoolforstg pushwithstgit.autoimerge. - Reject "@" as a branch name for
stg branch --create. - Bump gix to 0.89 and MSRV to 1.88.
- CVE-2026-91986: gix-transport CR/LF/NUL injection into git-daemon connect request via crafted git URL path (boo#1281742).
- CVE-2026-109349, CVE-2026-109350, CVE-2026-109351: gix-pack denial of service via pack version 3 header, ofs-delta base distance and pack header object count (boo#1285176).
- Allow unambiguous command shorthands, opt-in with
- Record
openSUSE-SU-2026:22204-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
rustAzure Linux:3 |
through 1.75.0-31 | None known |
rustAzure Linux:3 |
1.85.0 to 1.98.1-1 | None known |
rust-gix-transportDebian:13 |
All versions, plus listed versions 0.44.0-10.48.0-10.48.0-20.57.0-10.58.1-10.59.2-1 |
None known |
rust-gix-transportDebian:14 |
All versions, plus listed versions 0.44.0-10.48.0-10.48.0-20.57.0-10.58.1-10.59.2-1 |
None known |
rust-gix-transportUbuntu:24.04:LTS |
All versions, plus listed versions 0.41.1-10.41.1-1build1 |
None known |
rust-gix-transportUbuntu:26.10 |
All versions, plus listed versions 0.48.0-10.57.0-1 |
None known |
rust-gix-transportUbuntu:26.04:LTS |
All versions, plus listed versions 0.44.0-10.48.0-1 |
None known |
gitoxideopenSUSE:Tumbleweed |
before 0.58.0-2.1 | 0.58.0-2.1 |
openai-codexopenSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 0.158.0-1.1 | 0.158.0-1.1 |
stgitopenSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 2.7.0-1.1 | 2.7.0-1.1 |
gitoxideopenSUSE:Leap 16.0 |
before 0.56.0-bp160.2.1 | 0.56.0-bp160.2.1 |
gitoxideopenSUSE:Leap 16.0 |
before 0.60.0-bp160.1.1 | 0.60.0-bp160.1.1 |
stgitopenSUSE:Leap 16.0 From an advisory covering 4 CVEs |
before 2.7.0-bp160.1.1 | 2.7.0-bp160.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-91986 is a medium vulnerability (CVSS 5.3) in Gitoxidelabs Gitoxide, published September 15, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.23%, the 13th percentile. Fixed in gitoxide 0.58.0-2.1.
References
github.com/GitoxideLabs/gitoxide/security/advisories/GHSA-rc7h-wp5f-w3g5
vulncheck.com/advisories/gitoxide-gix-transport-before-0.59.2-cr-lf-nul-injection
nvd.nist.gov/vuln/detail/CVE-2026-91986
github.com/advisories/GHSA-7849-h6h3-vww8
github.com/CVEProject/cvelistV5/tree/main/cves/2026/91xxx/CVE-2026-91986.json
security-tracker.debian.org/tracker/CVE-2026-91986
Show 11 moreShow less
ubuntu.com/security/CVE-2026-91986
cve.org/CVERecord?id=CVE-2026-91986
suse.com/security/cve/CVE-2026-91986
suse.com/security/cve/CVE-2026-93657
suse.com/security/cve/CVE-2026-109349
bugzilla.suse.com/1281749
bugzilla.suse.com/1262997
bugzilla.suse.com/1281742
bugzilla.suse.com/1285176
suse.com/security/cve/CVE-2026-109350
suse.com/security/cve/CVE-2026-109351
Left out here: the rest of 1 source description. The JSON record has them.