[security] Prevent shadowing stdlib in gzip/tarfile/zipfile CLI [CVE-2026-115791]

Offen
#161,705 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
15/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
python
Bereich
cli, security

Rechercherichtung

The problem sits in the command-line entry points of the gzip, tarfile and zipfile modules, where archives are extracted into the current directory while python -m puts that directory on sys.path. Read those __main__ paths and the extraction error handling, then reproduce with an archive containing a traceback.py that fails on a later member. Work is already underway in the linked PRs (gh-161706 and others), so review those before starting; done means the stdlib cannot be shadowed during CLI extraction.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

3.11 3.12 3.13 3.14 3.15 3.16 stdlib type-security

When tarfile or zipfile command line interface (CLI) is used to decompress an archive, a Python script shadowing the stdlib can be created. Then if an error occurs during decompressing the next file, the newly created Python script is executed. This is especially true if the created Python is called traceback.py. The problem is that Python adds the current directory to sys.path when python -m MODULE is run, and the archive is also decompressed in the current directory.

Linked PRs
  • gh-161706
  • gh-161717
  • gh-161719
  • gh-161726
  • gh-161727
  • gh-161728
Vorherrschende Sprache
Python
Sterne
78.2k
Forks
36.6k
Ø Merge
19 Std. 57 Min.
Gemergte PRs (30 T.)
630

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus python/cpython

Alle Issues in python/cpython

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.