En sårbarhed i Rust-biblioteker til TAR-formatet, som fører til udpakkede filer fra indeholdte arkiver

I det Rust-baserede bibliotek async-tar, der tilbyder funktioner til læsning og skrivning af tar-arkiver, er der identificeret en sårbarhed (CVE-2025-62518, kode navn TARmageddon), som gør det muligt at pakke filer ud fra et specielt formatteret tar-arkiv og også filer, der indeholder et indlejret tar-arkiv. Sårbarheden kan udnyttes til at omgå systemer til verifikation af arkiver og til at pakke filer ud, for hvilke der ikke er udført kontrol.

Sårbarheden viser sig også i forks af biblioteket async-tar, såsom tokio-tar, krata-tokio-tar og astral-tokio-tar, samt i værktøjer baseret på dem, for eksempel i pakket manageren uv, der udvikles som en højtydende erstatning for "pip" til Python-projekter. Blandt de populære projekter, der bruger de sårbare biblioteker, er også værktøjet testcontainers til at starte docker-containere og WebAssembly runtime wasmCloud. I repositoriet crates.is har biblioteket async-tar haft 1,3 millioner downloads de sidste 90 dage, tokio-tar 2,2 millioner, testcontainers 2,9 millioner.

Sårbarheden skyldes en forkert positionering ved parsing af forskellige størrelsesværdier i overskrifterne ustar og PAX. I tar-arkiver i PAX-format angives der to overskrifter for hver fil i arkivet - den klassiske ustar og den udvidede PAX. Problemet opstår, fordi de sårbare biblioteker ved udpakning af filer i stedet for at beregne offset baseret på størrelsen fra den udvidede PAX-overskrift, bruger størrelsen fra den forældede ustar-overskrift. Ved en nul værdi i størrelsen fra ustar-overskriften, blev indholdet der følger efter behandlet som en korrekt TAR-overskriftsblok for den næste fil.

En sårbarhed i Rust-biblioteker til TAR-formatet, som fører til udpakkede filer fra indeholdte arkiver
En sårbarhed i Rust-biblioteker til TAR-formatet, som fører til udpakkede filer fra indeholdte arkiver

For at udføre et angreb er det tilstrækkeligt at oprette et TAR-arkiv, hvor nullen er angivet i ustar-overskriften, og størrelsen fra PAX-formatets overskrift er den aktuelle størrelse, hvilket får indholdet af en fil med et andet tar-arkiv til at blive behandlet som en del af hovedarkivet. Eksempel på kode til oprettelse af sådanne arkiver er tilgængelig på GitHub. Sårbarheden er blevet rettet i versionerne tokio-tar 0.5.6 og uv 0.9.5. For de øvrige biblioteker er rettelser endnu ikke offentligt tilgængelige, men der er forberedt patches for astral-tokio-tar, async-tar og krata-tokio-tar.

Sårbarheder i bibliotekerne tildeles et fare niveau på 8.1 ud af 10, da problemet kan udnyttes til at overskrive udpakkede filer (i sårbare implementationer vil de filer, der bliver udpakket, ikke være dem, der var synlige i arkivet). Dog er sårbarheden i pakkemanageren uv markeret som ikke-farlig, da hvis en angriber kan påvirke indholdet af den oprindelige arkiv, giver det ikke mening at komplicere angrebet og udnytte sårbarheden gennem et indlejret arkiv, når koden kan eksekveres gennem byggescripts i det primære arkiv.

Forskere, der har identificeret sårbarheden, har foreslået flere hypotetiske angrebsscenarier, der gør det muligt at omgå sikkerhedskontroller og opnå udførelse af kode gennem udskiftning af konfigurationsfiler eller indblanding i byggeprocessen. Det antages, at det sendte arkiv kan passere en automatiseret kontrol via sikkerhedsscanneren og en manuel revision, hvor revisoren ikke vil bemærke det mærkelige indlejrede arkiv med andre filer, hvorefter der under udpakkingen med Rust-bibliotekerne vil blive udtrukket andet indhold end forventet.

For eksempel kan en angriber uploade et modificeret arkiv til PyPI, som vil bestå en kontrol baseret på indholdet af hovedarkivet, der indeholder den legitime fil pyproject.toml. Under behandlingen af denne pakke med værktøjet uv vil den legitime pyproject.toml blive erstattet med en ondsindet version fra det indlejrede arkiv, der indeholder kommandoer, som vil blive udført under konstruktionen på udviklerens computer eller i et kontinuerligt integrationssystem. Tilsvarende kan man arrangere overskrivning af containerfiler under udpakning af containerbilledet ved hjælp af værktøjerne testcontainers.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster