Në bibliotekën e shkruar në gjuhën Rust, async-tar, e cila ofron funksione për të lexuar dhe shkruar arkiva tar, është gjetur një dobësi (CVE-2025-62518, emri i kodit TARmageddon) që lejon, gjatë shpërndarjes së një arkivi tar të formuar veçmas, jo vetëm nxjerrjen e skedareve që ndodhen në të, por gjithashtu skedaret e përmbajtura në një arkiv tar të nënshkruar. Kjo dobësi mund të përdoret për të anashkaluar sistemet e verifikimit të arkivave dhe për të nxjerrë skedare për të cilat nuk ishte bërë verifikimi.
DobĂ«sia gjithashtu shfaqet nĂ« fork-t e bibliotekĂ«s async-tar, siç janĂ« tokio-tar, krata-tokio-tar dhe astral-tokio-tar, si dhe nĂ« utilitat qĂ« bazohen nĂ« to, p.sh., menaxheri i paketave uv, i zhvilluar si njĂ« zĂ«vendĂ«sim me performancĂ« tĂ« lartĂ« pĂ«r "pip" pĂ«r projektet nĂ« gjuhĂ«n Python. Nga projektet e njohura qĂ« pĂ«rdorin bibliotekat e prekura, gjithashtu pĂ«rmenden mjeti testcontainers pĂ«r tĂ« nisur konteinerĂ«t docker dhe runtime WebAssembly wasmCloud. NĂ« depozitĂ«n crates.is pĂ«r 90 ditĂ«t e fundit, biblioteka async-tar ka pasur 1.3 milion shkarkime, tokio-tar â 2.2 milion, testcontainers â 2.9 milion.
DobĂ«sia Ă«shtĂ« shkaktuar nga njĂ« zgjedhje e gabuar e pozicionit gjatĂ« analizimit tĂ« vlerave tĂ« ndryshme tĂ« madhĂ«sisĂ« nĂ« titujt e ustar dhe PAX. NĂ« arkivat tar nĂ« format PAX pĂ«r çdo skedar brenda arkivit, janĂ« tĂ« specifikuar dy tituj â klasiku ustar dhe PAX i zgjeruar. Problemi Ă«shtĂ« se bibliotekat e prekura, gjatĂ« shpĂ«rndarjes sĂ« skedareve, nĂ« vend qĂ« tĂ« llogarisin offset-in mbi bazĂ«n e madhĂ«sisĂ« nga titulli i zgjeruar PAX, merrnin madhĂ«sinĂ« nga titulli i vjetruar ustar. Kur vlera e madhĂ«sisĂ« nĂ« titullin ustar Ă«shtĂ« zero, pĂ«rmbajtja qĂ« ndodhet pas saj trajtohet si njĂ« blok i saktĂ« titujsh TAR pĂ«r skedarin e ardhshĂ«m.


Për të realizuar një sulm, mjafton të krijosh një arkiv TAR, në të cilin titulli i ustar tregon një madhësi zero, ndërsa në titullin për formatin PAX tregohet madhësia aktuale, çka bën që përmbajtja e skedarit me një arkiv tar tjetër të trajtohet si pjesë e arkivit kryesor. Një shembull kodi për krijimin e arkivave të tillë është postuar në GitHub. Dobësia është adresuar në daljet tokio-tar 0.5.6 dhe uv 0.9.5. Për bibliotekat e tjera, korrigjimet nuk janë publikuar ende, por për astral-tokio-tar, async-tar dhe krata-tokio-tar janë përgatitur patches të veçanta.
Dobësive në biblioteka u është caktuar një nivel rreziku prej 8.1 nga 10, pasi problemi mund të përdoret për të mbivendosur skedarët që po nxirren (në implementimet e prekura, do të nxirren skedarë që nuk ishin të dukshëm në arkiv). Në këtë rast, dobësia në menaxherin e paketave uv është identifikuar si jo e rrezikshme, pasi nëse sulmuesi mund të ndikojë në përmbajtjen e arkivit origjinal, nuk ka kuptim të komplikohet sulmi dhe të shfrytëzohet dobësia përmes një arkivi të nënshkruar, kur mund të arrihet ekzekutimi i kodit përmes skenarëve të ndërtimit në arkivin kryesor.
Hulumtuesit që zbuluan dobësinë propozojnë disa skenarë hipotezë sulmi që mund të anashkalojnë kontrollat e sigurisë dhe të arrijnë ekzekutimin e kodit përmes zëvendësimit të skedarëve të konfigurimit ose ndërhyrjeve në procesin e ndërtimit. Nënkuptohet se arkivi i dërguar do të kalojë verifikimin automatizuar me skanerin e sigurisë dhe auditin manual, gjatë të cilit kontrolluesi nuk do të kushtojë vëmendje arkivit të çuditshëm të nënshkruar me skedarë të tjerë, pas të cilit gjatë shpërndarjes me bibliotekat Rust do të nxirret një përmbajtje tjetër nga arkivi sesa ishte pritur.
Për shembull, sulmuesi mund të ngrejë një arkiv të modifikuar në depozitën PyPI, i cili do të kalojë verifikimin mbi bazën e analizës së përmbajtjes së arkivit kryesor, që përmban skedarin legjitim pyproject.toml. Kur ky paketë të përpunohen me utilitarin uv, skedari legjitim pyproject.toml do të zëvendësohet me një version të dëmshëm nga arkivi i nënshkruar, përmbajtja e të cilit do të përmbajë komanda që do të ekzekutohen gjatë ndërtimit në kompjuterin e zhvilluesit apo në sistemin e integrimit të vazhdueshëm. Po ashtu, është e mundur të organizohet mbivendosja e skedarëve të konteinerit kur nxirren imazhet e konteinerit duke përdorur mjetin testcontainers.
Burimi: opennet.ru
