{"schema_version":1,"title":"gitpython (PyPI) vulnerabilities","summary":"Junglewise Threat Intelligence has tracked 35 vulnerabilities in gitpython (PyPI): 0 in the last 7 days and 26 in the last 90 days, 2 of them critical and 0 exploited in the wild. The most recent, CVE-2026-76220, was published on 10 September 2026.","url":"https://junglewise.ai/threats/technologies/pypi-gitpython","json_url":"https://junglewise.ai/threats/technologies/pypi-gitpython.json","publisher":"Junglewise Threat Intelligence","license":"CC-BY-4.0","license_url":"https://creativecommons.org/licenses/by/4.0/","attribution":"Junglewise Threat Intelligence, https://junglewise.ai/threats/technologies/pypi-gitpython","sources":"NVD, GitHub Security Advisories, OSV, the CISA Known Exploited Vulnerabilities catalog, FIRST EPSS and vendor advisories","kind":"technology","counts":{"high":15,"all_time":35,"critical":2,"exploited":0,"last_7_days":0,"last_30_days":7,"last_90_days":26,"last_365_days":30},"latest":[{"cve":"CVE-2026-76220","cvss":3.1,"epss":0.0091,"slug":"cve-2026-76220-gitpython-unsafe-git-option-guard-bypass-via-split-single-char","title":"PYSEC-2026-3843 - GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token smuggling enables command execution","severity":"low","exploited":false,"published_at":"2026-09-10T09:44:51.423124+00:00","url":"https://junglewise.ai/threats/cve-2026-76220-gitpython-unsafe-git-option-guard-bypass-via-split-single-char"},{"cve":"CVE-2026-76217","cvss":3.1,"epss":0.0041,"slug":"cve-2026-76217-gitpython-arbitrary-file-read-via-pathspec-from-file-in-indexfile","title":"PYSEC-2026-3841 - GitPython: Arbitrary file read via --pathspec-from-file in IndexFile.remove() and Head.checkout()","severity":"low","exploited":false,"published_at":"2026-09-10T09:44:51.369852+00:00","url":"https://junglewise.ai/threats/cve-2026-76217-gitpython-arbitrary-file-read-via-pathspec-from-file-in-indexfile"},{"cve":"CVE-2026-76218","cvss":3.1,"epss":0.0083,"slug":"cve-2026-76218-gitpython-unguarded-git-option-forwarding-in-repo-init-enables","title":"PYSEC-2026-3840 - GitPython: Unguarded git option forwarding in Repo.init enables arbitrary command execution via --template clone hooks","severity":"low","exploited":false,"published_at":"2026-09-10T09:44:51.318929+00:00","url":"https://junglewise.ai/threats/cve-2026-76218-gitpython-unguarded-git-option-forwarding-in-repo-init-enables"},{"cve":"CVE-2026-76219","cvss":3.1,"epss":0.0054,"slug":"cve-2026-76219-gitpython-unguarded-git-read-tree-option-forwarding-in-indexfile","title":"PYSEC-2026-3838 - GitPython: Unguarded git read-tree option forwarding in IndexFile.from_tree/reset/merge_tree enables arbitrary file overwrite","severity":"low","exploited":false,"published_at":"2026-09-10T09:44:51.252944+00:00","url":"https://junglewise.ai/threats/cve-2026-76219-gitpython-unguarded-git-read-tree-option-forwarding-in-indexfile"},{"cve":"CVE-2026-87819","cvss":7.5,"epss":0.0052,"slug":"cve-2026-87819-gitpython-redos-via-catastrophic-backtracking-in-actor-name-email","title":"GitPython ReDoS via catastrophic backtracking in Actor.name_email_regex","severity":"high","exploited":false,"published_at":"2026-09-09T12:17:17.12+00:00","url":"https://junglewise.ai/threats/cve-2026-87819-gitpython-redos-via-catastrophic-backtracking-in-actor-name-email"},{"cve":"CVE-2026-87818","cvss":6.5,"epss":0.0041,"slug":"cve-2026-87818-gitpython-argument-injection-in-diff-api-via-no-index","title":"GitPython argument injection in diff API via --no-index","severity":"medium","exploited":false,"published_at":"2026-09-09T12:17:16.98+00:00","url":"https://junglewise.ai/threats/cve-2026-87818-gitpython-argument-injection-in-diff-api-via-no-index"},{"cve":"CVE-2026-87817","cvss":8.8,"epss":0.0041,"slug":"cve-2026-87817-gitpython-git-directory-impersonation-leading-to-code-execution","title":"GitPython git directory impersonation leading to code execution","severity":"high","exploited":false,"published_at":"2026-09-09T12:17:16.83+00:00","url":"https://junglewise.ai/threats/cve-2026-87817-gitpython-git-directory-impersonation-leading-to-code-execution"},{"cve":"CVE-2026-78679","cvss":6.5,"epss":0.0026,"slug":"cve-2026-78679-gitpython-tagreference-create-argument-injection-bypasses-file","title":"GitPython before 3.1.59 contains an arbitrary file read vulnerability in TagReference.create() where a positional reference parameter bypass","severity":"medium","exploited":false,"published_at":"2026-08-25T02:16:52.47+00:00","url":"https://junglewise.ai/threats/cve-2026-78679-gitpython-tagreference-create-argument-injection-bypasses-file"},{"cve":"CVE-2026-78678","cvss":6.5,"epss":0.0041,"slug":"cve-2026-78678-gitpython-arbitrary-file-read-in-repo-blame-via-incomplete-option","title":"GitPython versions before 3.1.59 contain an incomplete denylist in the unsafe_git_revision_options guard that omits --contents and -S option","severity":"medium","exploited":false,"published_at":"2026-08-25T02:16:52.313+00:00","url":"https://junglewise.ai/threats/cve-2026-78678-gitpython-arbitrary-file-read-in-repo-blame-via-incomplete-option"},{"cve":"CVE-2026-78677","cvss":7.5,"epss":0.0065,"slug":"cve-2026-78677-gitpython-clone-from-omits-separate-git-dir-from-denylist","title":"GitPython before 3.1.59 omits --separate-git-dir from unsafe_git_clone_options, allowing attackers to create arbitrary git directories outsi","severity":"high","exploited":false,"published_at":"2026-08-25T02:16:52.173+00:00","url":"https://junglewise.ai/threats/cve-2026-78677-gitpython-clone-from-omits-separate-git-dir-from-denylist"},{"cve":"CVE-2026-78676","cvss":9.8,"epss":0.0078,"slug":"cve-2026-78676-gitpython-config-parser-multi-line-value-injection-in-write","title":"GitPython before 3.1.59 fails to safely re-serialize multi-line git-config values during write operations, corrupting dormant quoted values","severity":"critical","exploited":false,"published_at":"2026-08-25T02:16:52.03+00:00","url":"https://junglewise.ai/threats/cve-2026-78676-gitpython-config-parser-multi-line-value-injection-in-write"},{"cve":"CVE-2026-78675","cvss":8.4,"epss":0.0018,"slug":"cve-2026-78675-gitpython-arbitrary-local-file-content-disclosure-via-gitmodules","title":"GitPython before 3.1.59 fails to disable merge_includes when parsing .gitmodules, allowing attackers to disclose local file content by inclu","severity":"high","exploited":false,"published_at":"2026-08-25T02:16:51.887+00:00","url":"https://junglewise.ai/threats/cve-2026-78675-gitpython-arbitrary-local-file-content-disclosure-via-gitmodules"},{"cve":"CVE-2026-76222","cvss":4,"epss":0.0042,"slug":"cve-2026-76222-gitpython-arbitrary-git-repository-creation-outside-the-working","title":"PYSEC-2026-3784 - GitPython before 3.1.58 fails to validate submodule names from .gitmodules files, allowing attackers to create Git repositories at arbitrary","severity":"medium","exploited":false,"published_at":"2026-08-19T14:17:48.603+00:00","url":"https://junglewise.ai/threats/cve-2026-76222-gitpython-arbitrary-git-repository-creation-outside-the-working"},{"cve":"CVE-2026-76221","cvss":4,"epss":0.0077,"slug":"cve-2026-76221-gitpython-git-config-option-name-injection-via-whitespace","title":"PYSEC-2026-3783 - GitPython before 3.1.58 contains a config-name injection vulnerability in the option-name validator that allows attackers to forge arbitrary","severity":"medium","exploited":false,"published_at":"2026-08-19T14:17:48.463+00:00","url":"https://junglewise.ai/threats/cve-2026-76221-gitpython-git-config-option-name-injection-via-whitespace"},{"cve":"CVE-2026-73625","cvss":8.8,"epss":0.0092,"slug":"cve-2026-73625-gitpython-remote-code-execution-in-option-guard-bypass","title":"GitPython remote code execution in option guard bypass","severity":"high","exploited":false,"published_at":"2026-08-13T12:17:27.753+00:00","url":"https://junglewise.ai/threats/cve-2026-73625-gitpython-remote-code-execution-in-option-guard-bypass"},{"cve":"CVE-2026-73623","cvss":7.5,"epss":0.0084,"slug":"cve-2026-73623-gitpython-unsafe-git-clone-options-incomplete-denylist-in","title":"GitPython unsafe_git_clone_options incomplete denylist in --template","severity":"high","exploited":false,"published_at":"2026-08-13T12:17:27.477+00:00","url":"https://junglewise.ai/threats/cve-2026-73623-gitpython-unsafe-git-clone-options-incomplete-denylist-in"},{"cve":"CVE-2026-73622","cvss":7.5,"epss":0.0051,"slug":"cve-2026-73622-gitpython-environment-variable-expansion-in-remote-create-and","title":"GitPython environment variable expansion in Remote.create() and Submodule.add()","severity":"high","exploited":false,"published_at":"2026-08-13T12:17:27.337+00:00","url":"https://junglewise.ai/threats/cve-2026-73622-gitpython-environment-variable-expansion-in-remote-create-and"},{"cve":"CVE-2026-73621","cvss":5.4,"epss":0.0036,"slug":"cve-2026-73621-gitpython-argument-injection-in-commit-count","title":"GitPython argument injection in Commit.count","severity":"medium","exploited":false,"published_at":"2026-08-13T12:17:27.2+00:00","url":"https://junglewise.ai/threats/cve-2026-73621-gitpython-argument-injection-in-commit-count"},{"cve":"CVE-2026-73620","cvss":8.1,"epss":0.0057,"slug":"cve-2026-73620-gitpython-unguarded-git-option-forwarding-in-indexfile-checkout","title":"GitPython unguarded git option forwarding in IndexFile.checkout() and TagReference.create()","severity":"high","exploited":false,"published_at":"2026-08-13T12:17:27.057+00:00","url":"https://junglewise.ai/threats/cve-2026-73620-gitpython-unguarded-git-option-forwarding-in-indexfile-checkout"},{"cve":"CVE-2026-73619","cvss":6.5,"epss":0.0041,"slug":"cve-2026-73619-gitpython-incomplete-denylist-in-repo-archive-allows-arbitrary","title":"GitPython incomplete denylist in Repo.archive allows arbitrary file read","severity":"medium","exploited":false,"published_at":"2026-08-13T12:17:26.913+00:00","url":"https://junglewise.ai/threats/cve-2026-73619-gitpython-incomplete-denylist-in-repo-archive-allows-arbitrary"},{"cve":"CVE-2026-69097","cvss":3.1,"epss":0.0027,"slug":"cve-2026-69097-gitpython-git-config-section-name-injection-enables-arbitrary","title":"PYSEC-2026-3981 - GitPython before 3.1.53 fails to properly escape section names in git config files, allowing attackers to inject arbitrary configuration dir","severity":"low","exploited":false,"published_at":"2026-08-03T14:16:30.677+00:00","url":"https://junglewise.ai/threats/cve-2026-69097-gitpython-git-config-section-name-injection-enables-arbitrary"},{"cve":"CVE-2026-67326","cvss":7,"epss":0.0025,"slug":"cve-2026-67326-gitpython-newline-injection-in-config-writer-section-parameter","title":"GitPython newline injection in config_writer() section parameter","severity":"high","exploited":false,"published_at":"2026-08-01T13:17:03.063+00:00","url":"https://junglewise.ai/threats/cve-2026-67326-gitpython-newline-injection-in-config-writer-section-parameter"},{"cve":"CVE-2026-67325","cvss":8.8,"epss":0.0221,"slug":"cve-2026-67325-gitpython-command-injection-via-option-prefix-abbreviation","title":"GitPython command injection via option prefix abbreviation","severity":"high","exploited":false,"published_at":"2026-08-01T13:17:02.923+00:00","url":"https://junglewise.ai/threats/cve-2026-67325-gitpython-command-injection-via-option-prefix-abbreviation"},{"cve":"CVE-2026-67324","cvss":9.8,"epss":0.0064,"slug":"cve-2026-67324-gitpython-unsafe-option-gate-bypass-through-joined-short-options","title":"GitPython unsafe option gate bypass through joined short options","severity":"critical","exploited":false,"published_at":"2026-08-01T13:17:02.77+00:00","url":"https://junglewise.ai/threats/cve-2026-67324-gitpython-unsafe-option-gate-bypass-through-joined-short-options"},{"cve":"CVE-2026-67323","cvss":8.4,"epss":0.0125,"slug":"cve-2026-67323-gitpython-command-injection-via-unguarded-git-options","title":"GitPython command injection via unguarded Git options","severity":"high","exploited":false,"published_at":"2026-08-01T13:17:02.637+00:00","url":"https://junglewise.ai/threats/cve-2026-67323-gitpython-command-injection-via-unguarded-git-options"}],"weekly":[{"week":"2026-07-06","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-07-13","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-07-20","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-07-27","critical":1,"exploited":0,"vulnerabilities":5},{"week":"2026-08-03","critical":0,"exploited":0,"vulnerabilities":1},{"week":"2026-08-10","critical":0,"exploited":0,"vulnerabilities":6},{"week":"2026-08-17","critical":0,"exploited":0,"vulnerabilities":2},{"week":"2026-08-24","critical":1,"exploited":0,"vulnerabilities":5},{"week":"2026-08-31","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-09-07","critical":0,"exploited":0,"vulnerabilities":7},{"week":"2026-09-14","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-09-21","critical":0,"exploited":0,"vulnerabilities":0},{"week":"2026-09-28","critical":0,"exploited":0,"vulnerabilities":0}],"related":[{"name":"tensorflow (PyPI)","slug":"pypi-tensorflow","vulnerabilities":428,"url":"https://junglewise.ai/threats/technologies/pypi-tensorflow"},{"name":"tensorflow-cpu (PyPI)","slug":"tensorflow-cpu","vulnerabilities":424,"url":"https://junglewise.ai/threats/technologies/tensorflow-cpu"},{"name":"tensorflow-gpu (PyPI)","slug":"tensorflow-gpu","vulnerabilities":421,"url":"https://junglewise.ai/threats/technologies/tensorflow-gpu"},{"name":"open-webui (PyPI)","slug":"open-webui","vulnerabilities":177,"url":"https://junglewise.ai/threats/technologies/open-webui"},{"name":"Django (PyPI)","slug":"django","vulnerabilities":172,"url":"https://junglewise.ai/threats/technologies/django"},{"name":"apache-airflow (PyPI)","slug":"apache-airflow","vulnerabilities":152,"url":"https://junglewise.ai/threats/technologies/apache-airflow"},{"name":"plone (PyPI)","slug":"pypi-plone","vulnerabilities":101,"url":"https://junglewise.ai/threats/technologies/pypi-plone"},{"name":"praisonai (PyPI)","slug":"pypi-praisonai","vulnerabilities":86,"url":"https://junglewise.ai/threats/technologies/pypi-praisonai"},{"name":"exiv2 (PyPI)","slug":"exiv2","vulnerabilities":85,"url":"https://junglewise.ai/threats/technologies/exiv2"},{"name":"nltk (PyPI)","slug":"nltk","vulnerabilities":83,"url":"https://junglewise.ai/threats/technologies/nltk"},{"name":"mlflow (PyPI)","slug":"mlflow","vulnerabilities":82,"url":"https://junglewise.ai/threats/technologies/mlflow"},{"name":"pillow (PyPI)","slug":"pillow","vulnerabilities":79,"url":"https://junglewise.ai/threats/technologies/pillow"}],"technology":{"hub":true,"name":"gitpython (PyPI)","slug":"pypi-gitpython","vendor":{"name":"PyPI","slug":"pypi","url":"https://junglewise.ai/threats/vendors/pypi"},"aliases":[],"repo_url":"https://github.com/gitpython-developers/GitPython","description":"Python library for interacting with Git repositories programmatically.","url":"https://junglewise.ai/threats/technologies/pypi-gitpython"},"most_severe":[{"cve":"CVE-2026-78676","cvss":9.8,"epss":0.0078,"slug":"cve-2026-78676-gitpython-config-parser-multi-line-value-injection-in-write","title":"GitPython before 3.1.59 fails to safely re-serialize multi-line git-config values during write operations, corrupting dormant quoted values","severity":"critical","exploited":false,"published_at":"2026-08-25T02:16:52.03+00:00","url":"https://junglewise.ai/threats/cve-2026-78676-gitpython-config-parser-multi-line-value-injection-in-write"},{"cve":"CVE-2026-67324","cvss":9.8,"epss":0.0064,"slug":"cve-2026-67324-gitpython-unsafe-option-gate-bypass-through-joined-short-options","title":"GitPython unsafe option gate bypass through joined short options","severity":"critical","exploited":false,"published_at":"2026-08-01T13:17:02.77+00:00","url":"https://junglewise.ai/threats/cve-2026-67324-gitpython-unsafe-option-gate-bypass-through-joined-short-options"},{"cve":"CVE-2026-67325","cvss":8.8,"epss":0.0221,"slug":"cve-2026-67325-gitpython-command-injection-via-option-prefix-abbreviation","title":"GitPython command injection via option prefix abbreviation","severity":"high","exploited":false,"published_at":"2026-08-01T13:17:02.923+00:00","url":"https://junglewise.ai/threats/cve-2026-67325-gitpython-command-injection-via-option-prefix-abbreviation"},{"cve":"CVE-2026-73625","cvss":8.8,"epss":0.0092,"slug":"cve-2026-73625-gitpython-remote-code-execution-in-option-guard-bypass","title":"GitPython remote code execution in option guard bypass","severity":"high","exploited":false,"published_at":"2026-08-13T12:17:27.753+00:00","url":"https://junglewise.ai/threats/cve-2026-73625-gitpython-remote-code-execution-in-option-guard-bypass"},{"cve":"CVE-2026-42215","cvss":8.8,"epss":0.009,"slug":"cve-2026-42215-gitpython-command-injection-via-keyword-argument-bypass","title":"GitPython command injection via keyword argument bypass","severity":"high","exploited":false,"published_at":"2026-05-07T19:16:01.64+00:00","url":"https://junglewise.ai/threats/cve-2026-42215-gitpython-command-injection-via-keyword-argument-bypass"},{"cve":"CVE-2026-87817","cvss":8.8,"epss":0.0041,"slug":"cve-2026-87817-gitpython-git-directory-impersonation-leading-to-code-execution","title":"GitPython git directory impersonation leading to code execution","severity":"high","exploited":false,"published_at":"2026-09-09T12:17:16.83+00:00","url":"https://junglewise.ai/threats/cve-2026-87817-gitpython-git-directory-impersonation-leading-to-code-execution"},{"cve":"CVE-2026-67323","cvss":8.4,"epss":0.0125,"slug":"cve-2026-67323-gitpython-command-injection-via-unguarded-git-options","title":"GitPython command injection via unguarded Git options","severity":"high","exploited":false,"published_at":"2026-08-01T13:17:02.637+00:00","url":"https://junglewise.ai/threats/cve-2026-67323-gitpython-command-injection-via-unguarded-git-options"},{"cve":"CVE-2026-78675","cvss":8.4,"epss":0.0018,"slug":"cve-2026-78675-gitpython-arbitrary-local-file-content-disclosure-via-gitmodules","title":"GitPython before 3.1.59 fails to disable merge_includes when parsing .gitmodules, allowing attackers to disclose local file content by inclu","severity":"high","exploited":false,"published_at":"2026-08-25T02:16:51.887+00:00","url":"https://junglewise.ai/threats/cve-2026-78675-gitpython-arbitrary-local-file-content-disclosure-via-gitmodules"},{"cve":"CVE-2026-42284","cvss":8.1,"epss":0.0071,"slug":"cve-2026-42284-gitpython-argument-injection-in-clone-and-submodule-update","title":"GitPython argument injection in clone and submodule update","severity":"high","exploited":false,"published_at":"2026-04-25T23:41:49+00:00","url":"https://junglewise.ai/threats/cve-2026-42284-gitpython-argument-injection-in-clone-and-submodule-update"},{"cve":"CVE-2026-73620","cvss":8.1,"epss":0.0057,"slug":"cve-2026-73620-gitpython-unguarded-git-option-forwarding-in-indexfile-checkout","title":"GitPython unguarded git option forwarding in IndexFile.checkout() and TagReference.create()","severity":"high","exploited":false,"published_at":"2026-08-13T12:17:27.057+00:00","url":"https://junglewise.ai/threats/cve-2026-73620-gitpython-unguarded-git-option-forwarding-in-indexfile-checkout"}],"generated_at":"2026-09-28T03:07:00.154823+00:00"}