În modulul tarfile inclus în livrarea standard a Python, care oferă funcții pentru citirea și scrierea arhivelor tar, au fost descoperite cinci vulnerabilități, dintre care una este clasificată ca având un nivel critic de severitate. Vulnerabilitățile au fost remediate în versiunile Python 3.13.4 și 3.12.11. Cea mai periculoasă vulnerabilitate (CVE-2025-4517) permite, la extragerea unei arhive special concepute, scrierea fișierelor în orice parte a sistemului de fișiere. În scripturile sistemice care folosesc tarfile și sunt rulate cu drepturi de root (de exemplu, în utilitarele pentru gestionarea pachetelor și în containerele izolate), vulnerabilitatea poate fi folosită pentru a crește privilegiile proprii sau pentru a ieși din containerul izolat.
Vulnerabilitatea afectează proiectele în care modulul tarfile este utilizat pentru extragerea arhivelor tar nesigure, folosind funcția TarFile.extractall() sau TarFile.extract() cu parametrul „filter=”, setat pe „data” sau „tar”. Vulnerabilitatea este cauzată de tratarea incorectă a secvenței „..” în numele legăturii. Problema afectează versiunile Python începând cu 3.12. Mod „filter=„data”” este aplicat implicit în ramura Python 3.14, care este în curs de dezvoltare (lansare planificată pentru toamnă).
Alte vulnerabilități în TarFile:
- CVE-2025-4330 — posibilitatea de a ocoli filtrul de date extrase, ceea ce poate duce la extragerea din arhivă a unei legături simbolice care indică în afara directorului de bază în care se efectuează extragerea.
- CVE-2025-4138 — posibilitatea de a crea legături simbolice arbitrare în afara directorului de bază la extragerea arhivelor cu parametrul ‘filter=„data”‘.
- CVE-2024-12718 — posibilitatea de a modifica metadatele (de exemplu, timpul modificării) fișierelor în afara directorului de bază la extragerea arhivelor cu parametrul ‘filter=„data”‘ sau permisiunile (chmod) la extragerea arhivelor cu parametrul ‘filter=„tar”‘.
- CVE-2025-4435 — dacă la extragerea unei arhive parametrul TarFile.errorlevel este setat pe 0, atunci, contrar documentației, elementele din arhivă care cad sub filtrul specificat erau extrase, nu ignorate.
Sursa: opennet.ro
