CVE-2023-41040

NameCVE-2023-41040
DescriptionGitPython is a python library used to interact with Git repositories. In order to resolve some git references, GitPython reads files from the `.git` directory, in some places the name of the file being read is provided by the user, GitPython doesn't check if this file is located outside the `.git` directory. This allows an attacker to make GitPython read any file from the system. This vulnerability is present in https://github.com/gitpython-developers/GitPython/blob/1c8310d7cae144f74a671cbe17e51f63a830adbf/git/refs/symbolic.py#L174-L175. That code joins the base directory with a user given string without checking if the final path is located outside the base directory. This vulnerability cannot be used to read the contents of files but could in theory be used to trigger a denial of service for the program. This issue has been addressed in version 3.1.37.
SourceCVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more)
ReferencesDLA-3589-1, DLA-3939-1

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
python-git (PTS)jessie0.3.2~RC1-3vulnerable
stretch (lts), stretch2.1.1-2+deb9u1fixed
buster (security), buster, buster (lts)2.1.11-1+deb10u2fixed
bullseye3.1.14-1vulnerable
bullseye (security)3.1.14-1+deb11u1fixed
bookworm3.1.30-1+deb12u2fixed
sid, trixie3.1.37-3fixed

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
python-gitsourcejessie(unfixed)end-of-life
python-gitsourcestretch(not affected)
python-gitsourcebuster2.1.11-1+deb10u2DLA-3589-1
python-gitsourcebullseye3.1.14-1+deb11u1DLA-3939-1
python-gitsourcebookworm3.1.30-1+deb12u2
python-gitsource(unstable)3.1.36-1

Notes

https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-cwvm-v4w8-q58c
Fixed by: https://github.com/gitpython-developers/GitPython/commit/64ebb9fcdfbe48d5d61141a557691fd91f1e88d6 (3.1.35)
Testcase: https://github.com/gitpython-developers/GitPython/commit/65b8c6a2ccacdf26e751cd3bc3c5a7c9e5796b56 (3.1.35)
[stretch] - python-git <not-affected> (The vulnerable code was introduced later)

Search for package or bug name: Reporting problems