Arbitrary file permission modification during extraction via vulnerable `tar` dependency (CVE-2026-33056) <br />

Aperta Adatta ai principianti
#767 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
82/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
rust
Ambito
security

Direzione di ricerca

Inizia da Cargo.toml e ispeziona la dipendenza tar bloccata utilizzata da python_distribution_extract() per l’estrazione dell’archivio. Aggiorna la dipendenza alla versione 0.4.45 o successiva, quindi esegui la riproduzione malevola .tar.zst fornita e conferma che /tmp/victim rimanga con la modalità 700 invece di cambiare a 777.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Error Description:
We discovered that PyOxidizer relies on an outdated tar crate (0.4.43) which is vulnerable to CVE-2026-33056. This vulnerability exists in tar versions < 0.4.45. When PyOxidizer extracts a Python distribution archive (e.g., via python_distribution_extract()), a maliciously crafted .tar.zst file can bypass intended extraction directory boundaries and arbitrarily modify the permissions of external directories on the host filesystem.
Reproduction Steps:

  1. Create an external target directory on the host system with restricted permissions: mkdir /tmp/victim && chmod 700 /tmp/victim.
  2. Craft a malicious .tar.zst archive (evil.tar.zst) that contains a directory entry pointing to ../../../../tmp/victim with 0777 permissions in its header.
  3. Run PyOxidizer (or a script calling python_distribution_extract()) to extract evil.tar.zst into a local destination folder.
  4. Check the permissions of the external /tmp/victim directory: stat -c "%a" /tmp/victim.

Observable Evidence / Impact:
The extraction succeeds without throwing any path-traversal or permission errors. However, the permissions of the external /tmp/victim directory are silently escalated.

project=PyOxidizer
archive=evil.tar.zst
mode_before=700
extract_ok=true
mode_after=777

Suggested Mitigation:
Please update the tar dependency in Cargo.toml to >= 0.4.45.

Lingua principale
Rust
Stelle
6.2k
Fork
256
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di indygreg/PyOxidizer

Tutte le issue di indygreg/PyOxidizer

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.