p PatchFirst

CVE-2022-41903

CVE-2022-41903 · Integer overflow in `git archive`, `git log --format` leading to RCE in git

This page contains facts from public vulnerability sources. Check the original advisory before updating.

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`.

CVSS 9.8 · Critical · EPSS 44.3% · Fix available

Published
Updated

Stack: system

Affected products and versions

  • git

    Versions
    • < 2.30.7: Affected
    • >= 2.31.0, < 2.31.6: Affected
    • >= 2.32.0, < 2.32.5: Affected
    • >= 2.33.0, < 2.33.6: Affected
    • >= 2.34.0, < 2.34.6: Affected
    • >= 2.35.0, < 2.35.6: Affected
    • >= 2.36.0, < 2.36.4: Affected
    • >= 2.37.0, < 2.37.5: Affected
    • >= 2.38.0, < 2.38.3: Affected
    • = 2.39.0: Affected

    No fix published

  • git Debian:12

    Affected ranges
    • ECOSYSTEM: < 1:2.39.1-0.1

    Update to 1:2.39.1-0.1

  • git Debian:13

    Affected ranges
    • ECOSYSTEM: < 1:2.39.1-0.1

    Update to 1:2.39.1-0.1

  • git Debian:14

    Affected ranges
    • ECOSYSTEM: < 1:2.39.1-0.1

    Update to 1:2.39.1-0.1

  • git Ubuntu:Pro:14.04:LTS

    Versions
    • 1:1.8.3.2-1
    • 1:1.8.4.2-1
    • 1:1.8.4.3-1
    • 1:1.8.4.4-1
    • 1:1.8.5-1
    • 1:1.8.5.1-1
    • 1:1.8.5.2-1
    • 1:1.8.5.2-2
    • 1:1.8.5.3-1
    • 1:1.9~rc1-1
    • 1:1.9.0-1
    • 1:1.9.1-1
    • 1:1.9.1-1ubuntu0.1
    • 1:1.9.1-1ubuntu0.2
    • 1:1.9.1-1ubuntu0.3
    • 1:1.9.1-1ubuntu0.4
    • 1:1.9.1-1ubuntu0.5
    • 1:1.9.1-1ubuntu0.6
    • 1:1.9.1-1ubuntu0.7
    • 1:1.9.1-1ubuntu0.8
    • 1:1.9.1-1ubuntu0.9
    • 1:1.9.1-1ubuntu0.10
    Affected ranges
    • ECOSYSTEM: < 1:1.9.1-1ubuntu0.10+esm1

    Update to 1:1.9.1-1ubuntu0.10+esm1

  • git Ubuntu:Pro:16.04:LTS

    Versions
    • 1:2.5.0-1
    • 1:2.6.2-1
    • 1:2.6.3-1
    • 1:2.6.4-1
    • 1:2.7.0~rc3-1
    • 1:2.7.0-1
    • 1:2.7.3-0ubuntu1
    • 1:2.7.4-0ubuntu1
    • 1:2.7.4-0ubuntu1.1
    • 1:2.7.4-0ubuntu1.2
    • 1:2.7.4-0ubuntu1.3
    • 1:2.7.4-0ubuntu1.4
    • 1:2.7.4-0ubuntu1.5
    • 1:2.7.4-0ubuntu1.6
    • 1:2.7.4-0ubuntu1.7
    • 1:2.7.4-0ubuntu1.8
    • 1:2.7.4-0ubuntu1.9
    • 1:2.7.4-0ubuntu1.10
    • 1:2.7.4-0ubuntu1.10+esm1
    • 1:2.7.4-0ubuntu1.10+esm3
    Affected ranges
    • ECOSYSTEM: < 1:2.7.4-0ubuntu1.10+esm4

    Update to 1:2.7.4-0ubuntu1.10+esm4

  • git Ubuntu:18.04:LTS

    Versions
    • 1:2.14.1-1ubuntu4
    • 1:2.15.1-1ubuntu2
    • 1:2.17.0-1ubuntu1
    • 1:2.17.1-1ubuntu0.1
    • 1:2.17.1-1ubuntu0.3
    • 1:2.17.1-1ubuntu0.4
    • 1:2.17.1-1ubuntu0.5
    • 1:2.17.1-1ubuntu0.6
    • 1:2.17.1-1ubuntu0.7
    • 1:2.17.1-1ubuntu0.8
    • 1:2.17.1-1ubuntu0.9
    • 1:2.17.1-1ubuntu0.10
    • 1:2.17.1-1ubuntu0.11
    • 1:2.17.1-1ubuntu0.12
    • 1:2.17.1-1ubuntu0.13
    • 1:2.17.1-1ubuntu0.14
    Affected ranges
    • ECOSYSTEM: < 1:2.17.1-1ubuntu0.15

    Update to 1:2.17.1-1ubuntu0.15

  • git Ubuntu:20.04:LTS

    Versions
    • 1:2.20.1-2ubuntu1
    • 1:2.24.0-1ubuntu1
    • 1:2.24.0-1ubuntu2
    • 1:2.25.0-1ubuntu1
    • 1:2.25.1-1ubuntu1
    • 1:2.25.1-1ubuntu2
    • 1:2.25.1-1ubuntu3
    • 1:2.25.1-1ubuntu3.1
    • 1:2.25.1-1ubuntu3.2
    • 1:2.25.1-1ubuntu3.3
    • 1:2.25.1-1ubuntu3.4
    • 1:2.25.1-1ubuntu3.5
    • 1:2.25.1-1ubuntu3.6
    • 1:2.25.1-1ubuntu3.7
    Affected ranges
    • ECOSYSTEM: < 1:2.25.1-1ubuntu3.8

    Update to 1:2.25.1-1ubuntu3.8

  • git Ubuntu:22.04:LTS

    Versions
    • 1:2.32.0-1ubuntu1
    • 1:2.33.1-1ubuntu1
    • 1:2.34.1-1ubuntu1
    • 1:2.34.1-1ubuntu1.1
    • 1:2.34.1-1ubuntu1.2
    • 1:2.34.1-1ubuntu1.4
    • 1:2.34.1-1ubuntu1.5
    Affected ranges
    • ECOSYSTEM: < 1:2.34.1-1ubuntu1.6

    Update to 1:2.34.1-1ubuntu1.6

Original sources

Check your server →