Zraniteľnosť v Rust knižniciach pre formát TAR, ktorá vedie k rozbaleniu súborov z vnútorného archívu

V knižnici async-tar napísanej v jazyku Rust, ktorá poskytuje funkcie na čítanie a zápis tar archívov, bola zistená zraniteľnosť (CVE-2025-62518, kódové meno TARmageddon), ktorá umožňuje pri rozbaľovaní špeciálne upraveného tar archívu nielen extrahovať súbory v ňom obsiahnuté, ale aj súbory, ktoré sa nachádzajú vo vnorenom tar archíve. Zraniteľnosť môže byť použitá na obídenie systémov overovania archívov a rozbalenie súborov, pre ktoré nebola vykonaná kontrola.

Zraniteľnosť sa tiež prejavuje vo forkách knižnice async-tar, ako sú tokio-tar, krata-tokio-tar a astral-tokio-tar, ako aj v nástrojoch založených na nich, napríklad v balíčkovom manažéri uv, vyvíjanom ako vysokovýkonná náhrada „pip“ pre projekty v jazyku Python. Medzi populárne projekty, ktoré používajú zraniteľné knižnice, patrí aj nástroj testcontainers na spúšťanie docker kontajnerov a WebAssembly runtime wasmCloud. V repozitári crates.is za posledných 90 dní knižnica async-tar zaznamenala 1,3 milióna stiahnutí, tokio-tar — 2,2 milióna, testcontainers — 2,9 milióna.

Zraniteľnosť je spôsobená nesprávnym výberom pozície pri analýze rôznych veľkostí v hlavičkách ustar a PAX. V tar archívoch vo formáte PAX sú pre každý súbor v archíve uvedené dva hlavičky — klasická ustar a rozšírená PAX. Problém je spôsobený tým, že zraniteľné knižnice pri rozbaľovaní súborov miesto výpočtu posunutia na základe veľkosti z rozšírenej hlavičky PAX brali veľkosť zo zastaralej hlavičky ustar. Pri nulovej hodnote veľkosti v hlavičke ustar sa nasledujúci obsah súboru spracovával ako platný blok TAR hlavičiek pre nasledujúci súbor.

Zraniteľnosť v Rust knižniciach pre formát TAR, ktorá vedie k rozbaleniu súborov z vnútorného archívu
Zraniteľnosť v Rust knižniciach pre formát TAR, ktorá vedie k rozbaleniu súborov z vnútorného archívu

Na vykonanie útoku stačí vytvoriť TAR archív, v ktorom je v hlavičke ustar uvedená nulová veľkosť a v hlavičke pre formát PAX aktuálna veľkosť, čo spôsobí, že obsah súboru s iným tar archívom bude spracovaný ako súčasť hlavného archívu. Príklad kódu na vytvorenie takýchto archívov je umiestnený na GitHub. Zraniteľnosť bola odstránená v vydaniach tokio-tar 0.5.6 a uv 0.9.5. Pre ostatné knižnice opravy zatiaľ neboli zverejnené, ale pre astral-tokio-tar, async-tar a krata-tokio-tar boli pripravené samostatné záplaty.

Zraniteľnosti v knižniciach boli ohodnotené na úroveň nebezpečenstva 8.1 z 10, pretože problém môže byť využitý na prepísanie rozbaľovaných súborov (v zraniteľných implementáciách budú rozbalené iné súbory, ako boli viditeľné v archíve). Zároveň bola zraniteľnosť v balíkovom manažéri uv označená ako nebezpečná, pretože ak útočník môže ovplyvniť obsah pôvodného archívu, nemá zmysel zložiť útok a zneužívať zraniteľnosť cez vnorený archív, keď môže dosiahnuť vykonanie kódu prostredníctvom skriptov vo hlavnom archíve.

Výskumníci, ktorí odhalili zraniteľnosť, navrhli niekoľko hypotetických scénariów útokov, ktoré umožňujú obísť bezpečnostné kontroly a dosiahnuť vykonanie kódu prostredníctvom výmeny konfiguračných súborov alebo zásahu do procesu zostavovania. Predpokladá sa, že zaslaný archív prejde automatizovanou kontrolou bezpečnostným skenerom a ručným auditom, počas ktorého revízor nezaznamená podivný vnorený archív s inými súbormi, a potom pri rozbaľovaní pomocou knižníc Rust z archívu bude extrahovaný iný obsah, ako sa očakávalo.

Napríklad, útočník môže nahrať modifikovaný archív do repozitára PyPI, ktorý prejde kontrolou na základe analýzy obsahu hlavného archívu obsahujúceho legitímny súbor pyproject.toml. Pri spracovaní tohto balíka pomocou nástroja uv bude legitímny pyproject.toml nahradený škodlivou variantou z vnoreného archívu, ktorá obsahuje príkazy, ktoré budú vykonané pri zostavení na počítači vývojára alebo v systéme kontinuálnej integrácie. Rovnako tak je možné organizovať prepísanie súborov kontajnera pri extrakcii obrazu kontajnera pomocou nástrojov testcontainers.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster