Skip to main content
Public proof of conceptFix available

CVE-2022-41903

A public proof of concept exists; no exploitation attested.

  • Published2023-01-17
  • WeaknessCWE-190

Am I affected?

With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.

Description

Git is distributed revision control system. `git log` can display commits in an arbitrary format using its `--format` specifiers. This functionality is also exposed to `git archive` via the `export-subst` gitattribute. When processing the padding operators, there is a integer overflow in `pretty.c::format_and_pad_commit()` where a `size_t` is stored improperly as an `int`, and then added as an offset to a `memcpy()`. This overflow can be triggered directly by a user running a command which invokes the commit formatting machinery (e.g., `git log --format=...`). It may also be triggered indirectly through git archive via the export-subst mechanism, which expands format specifiers inside of files within the repository during a git archive. This integer overflow can result in arbitrary heap writes, which may result in arbitrary code execution. The problem has been patched in the versions published on 2023-01-17, going back to v2.30.7. Users are advised to upgrade. Users who are unable to upgrade should disable `git archive` in untrusted repositories. If you expose git archive via `git daemon`, disable it by running `git config --global daemon.uploadArch false`.

Timeline

dates in UTC
  1. 2023-01-1723:15CVE publishedNVD
  2. 2026-10-2319:23First public proof of conceptPoC-in-GitHub
  3. 2026-10-2319:23EPSS crossed 10 %FIRST EPSS

Observed activity

isMalicious corpus · updated 2026-10-23 21:37 UTC
Indicators tagged with this CVE, per day0 indicators over 7 days
Block these indicators
  • Firewall list (EDL, text): https://api.ismalicious.com/edl/cve/CVE-2022-41903?format=txt
  • CSV export: https://api.ismalicious.com/edl/cve/CVE-2022-41903?format=csv
  • TAXII collection of exploited CVEs
  • The EDL and CSV take an API key on the Pro plan.

Versions per branch

NVD
Git-scm git
BranchAffectedFixed in
2.30≤ 2.30.6no fix published
2.31≥ 2.31.0, ≤ 2.31.5no fix published
2.32≥ 2.32.0, ≤ 2.32.4no fix published
2.33≥ 2.33.0, ≤ 2.33.5no fix published
2.34≥ 2.34.0, ≤ 2.34.5no fix published
2.35≥ 2.35.0, ≤ 2.35.5no fix published
2.36≥ 2.36.0, ≤ 2.36.3no fix published
2.37≥ 2.37.0, ≤ 2.37.4no fix published
2.38≥ 2.38.0, ≤ 2.38.2no fix published
2.39= 2.39.0no fix published

as publishedRanges as NVD and OSV publish them; a distribution’s build can be fixed under an older number.

Distribution builds and vendor advisories

Packages from OSV.dev and products from the vendors' CSAF advisories.

version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.

Packages

  • gitAlmaLinux:9all versions · fixed in 2.31.1-3.el9_1and 14 other packages
  • gitAlmaLinux:8all versions · fixed in 2.31.1-3.el8_7and 14 other packages

Full record on NVD

Fix

Advisories and patches

Detection

read 2026-10-23 19:23 UTC
Nuclei template
none so far
ProjectDiscovery
Exploit-DB
no entry
Exploit-DB
Proof-of-concept repositories
1 repository, unverifiedsondermc/git-cveissues
PoC-in-GitHub

Sources

  • CISA-ADPSSVC decisionnone2025-03-10
  • OpenCVESSVC decisionnone—
  • CNACVSS 3.19.8read 2026-10-23
  • NVDCVSS 3.19.8read 2026-10-23
  • CNAweakness (CWE)CWE-190read 2026-10-23
  • FIRST EPSSEPSS score44.3 %read 2026-10-23
  • PoC-in-GitHubproof of concept1read 2026-10-23
  • OSVaffected packages—

Technical details

CVSS v3 Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Published
2023-01-17
Last Modified
2026-06-17
NVD status
Modified

Frequently asked questions

What is CVE-2022-41903?

Git is distributed revision control system. `git log` can display commits in an arbitrary format using its `--format` specifiers. This functionality is also exposed to `git archive` via the `export-subst` gitattribute. When processing the padding operators, there is a integer overflow in `pretty.c::format_and_pad_commit()` where a `size_t` is stored improperly as an `int`, and then added as an offset to a `memcpy()`. This overflow can be triggered directly by a user running a command which invokes the commit formatting machinery (e.g., `git log --format=...`). It may also be triggered indirectly through git archive via the export-subst mechanism, which expands format specifiers inside of files within the repository during a git archive. This integer overflow can result in arbitrary heap writes, which may result in arbitrary code execution. The problem has been patched in the versions published on 2023-01-17, going back to v2.30.7. Users are advised to upgrade. Users who are unable to upgrade should disable `git archive` in untrusted repositories. If you expose git archive via `git daemon`, disable it by running `git config --global daemon.uploadArch false`.

Is CVE-2022-41903 actively exploited?

Active exploitation of CVE-2022-41903 has not been confirmed. Its EPSS score was 44.3% on 2026-10-22, the estimated probability of exploitation in the next 30 days.

What is the CVSS score for CVE-2022-41903?

CVE-2022-41903 has a CVSS v3 base score of 9.8 (CRITICAL severity), with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.

Running git? Hear about its next vulnerability

Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».

No credit card required · No monthly cap on website lookups · 250 API requests/month