Medium · published August 25, 2026
GitPython versions before 3.1.59 contain an incomplete denylist in the unsafe_git_revision_options guard that omits --contents and -S options, allowing attackers to read arbitrary files by passing these options to Repo.blame(). Attackers can supply revision values like --contents=/etc/passwd to leak file contents through the blame result returned to the caller.
| Product | Versions | Fixed in |
|---|---|---|
| gitpython_project/gitpython | < 3.1.59 | 3.1.59 |