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

Ouverte
#161,705 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
15/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
python
Domaine
cli, security

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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
Langage dominant
Python
Étoiles
78.2k
Forks
36.6k
Merge moyen
19 h 57 min
PR mergées (30 j)
630

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de python/cpython

Toutes les issues de python/cpython

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.