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

Configuration 1 (hide)

OR cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:*
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:*
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:*
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:*
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:*
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:*
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:*
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:*
cpe:2.3:a:git-scm:git:*:*:*:*:*:*:*:*
cpe:2.3:a:git-scm:git:2.39.0:*:*:*:*:*:*:*

History

21 Nov 2024, 07:24

Type Values Removed Values Added
References () https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#_export_subst - Vendor Advisory () https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#_export_subst - Vendor Advisory
References () https://git-scm.com/docs/pretty-formats#Documentation/pretty-formats.txt-emltltNgttruncltruncmtruncem - Vendor Advisory () https://git-scm.com/docs/pretty-formats#Documentation/pretty-formats.txt-emltltNgttruncltruncmtruncem - Vendor Advisory
References () https://github.com/git/git/commit/508386c6c5857b4faa2c3e491f422c98cc69ae76 - Patch, Release Notes, Third Party Advisory () https://github.com/git/git/commit/508386c6c5857b4faa2c3e491f422c98cc69ae76 - Patch, Release Notes, Third Party Advisory
References () https://github.com/git/git/security/advisories/GHSA-475x-2q3q-hvwq - Third Party Advisory () https://github.com/git/git/security/advisories/GHSA-475x-2q3q-hvwq - Third Party Advisory
References () https://security.gentoo.org/glsa/202312-15 - () https://security.gentoo.org/glsa/202312-15 -
Summary
  • (es) Git es un sistema de control de revisiones distribuido. `git log` puede mostrar confirmaciones en un formato arbitrario usando sus especificadores `--format`. Esta funcionalidad también está expuesta a "git archive" a través del atributo git "export-subst". Al procesar los operadores de relleno, hay un desbordamiento de enteros en `pretty.c::format_and_pad_commit()` donde `size_t` se almacena incorrectamente como `int` y luego se agrega como un desplazamiento a `memcpy()`. Este desbordamiento puede ser desencadenado directamente por un usuario que ejecuta un comando que invoca la maquinaria de formato de commit (por ejemplo, `git log --format=...`). También se puede activar indirectamente a través del archivo git mediante el mecanismo export-subst, que expande los especificadores de formato dentro de los archivos dentro del repositorio durante un archivo git. Este desbordamiento de enteros puede dar lugar a escrituras arbitrarias en el almacenamiento dinámico, lo que puede dar lugar a la ejecución de código arbitrario. El problema ha sido solucionado en las versiones publicadas el 17-01-2023, remontándose a la v2.30.7. Se recomienda a los usuarios que actualicen. Los usuarios que no puedan actualizar deben desactivar "git archive" en repositorios que no sean de confianza. Si expone el archivo git a través de `git daemon`, desactívelo ejecutando `git config --global daemon.uploadArch false`.

27 Dec 2023, 10:15

Type Values Removed Values Added
References
  • () https://security.gentoo.org/glsa/202312-15 -

Information

Published : 2023-01-17 23:15

Updated : 2024-11-21 07:24


NVD link : CVE-2022-41903

Mitre link : CVE-2022-41903

CVE.ORG link : CVE-2022-41903


JSON object : View

Products Affected

git-scm

  • git
CWE
CWE-190

Integer Overflow or Wraparound