I Python-modul tarfile, der leveres med standardpakken til at læse og skrive tar-arkiver, er der identificeret fem sårbarheder, hvoraf én er blevet tildelt en kritisk risikoklassifikation. Sårbarhederne er blevet rettet i versionerne Python 3.13.4 og 3.12.11. Den mest kritiske sårbarhed (CVE-2025-4517) gør det muligt at skrive filer til enhver del af filsystemet ved udpakkning af et specielt udformet arkiv. I systemskripter, der bruger tarfile og køres med root-rettigheder (f.eks. i værktøjer til pakkehåndtering og isolerede containere), kan sårbarheden anvendes til at hæve sine privilegier eller bryde ud af den isolerede container.
Sårbarheden påvirker projekter, hvor tarfile-modulet anvendes til at udpake usikre tar-arkiver ved brug af funktionerne TarFile.extractall() eller TarFile.extract() med parameteren 'filter=' indstillet til 'data' eller 'tar'. Sårbarheden skyldes en forkert behandling af sekvensen '..' i navnet på symlinket. Problemet påvirker versioner af Python fra 3.12 og frem. Indstillingen 'filter="data"' er som standard anvendt i Python 3.14-grenen, som er under udvikling (udgivelsen er planlagt til efteråret).
Andre sårbarheder i TarFile:
- CVE-2025-4330 — mulighed for at omgå filteret for udtrukne data, hvilket kan føre til, at der udtrækkes en symbolsk link fra arkivet, der peger uden for den basismappe, hvor udpakkningen udføres.
- CVE-2025-4138 — mulighed for at oprette vilkårlige symboliske links uden for basismappen ved udpakkning af arkiver med parameteren 'filter="data"'.
- CVE-2024-12718 — mulighed for at ændre metadata (f.eks. ændringstid) for filer uden for basismappen ved udpakkning af arkiver med parameteren 'filter="data"' eller adgangsrettigheder (chmod) ved udpakkning af arkiver med parameteren 'filter="tar"'.
- CVE-2025-4435 — hvis parameteren TarFile.errorlevel er indstillet til 0 under udpakkning af arkivet, så blev elementer, der falder ind under det angivne filter, udpakket i strid med dokumentationen, i stedet for at blive ignoreret.
Kilde: opennet.ru
