V správcovi balíkov Guix boli identifikované zraniteľnosti (CVE nebolo priradené) pri implementácii interného príkazu „guix substitute“, ktorý automaticky vyvoláva proces guix-daemon na pozadí počas inštalácie balíkov. Príkaz sa používa na stiahnutie predpripravených binárnych balíkov z externých serverov a overenie ich integrity pomocou digitálneho podpisu. Najzávažnejšia zraniteľnosť umožňuje vzdialené spustenie kódu v systéme používateľa s oprávneniami, pod ktorými beží proces guix-daemon na pozadí.
Tento problém ovplyvňuje všetky konfigurácie s procesom guix-daemon, bez ohľadu na to, či beží s oprávneniami root alebo neprivilegovaným používateľom. Zneužitie tejto zraniteľnosti vyžaduje akýkoľvek pokus o stiahnutie predpripravených binárnych balíkov z server, ovládaný útočníkom. V tomto prípade škodlivý server Nemusí byť explicitne vybraná ani špecifikovaná v používateľských nastaveniach – dá sa definovať pomocou možnosti „--discover“, ktorá umožňuje zosobnenie servera počas útoku typu „man-in-the-middle“. V konfiguráciách, kde guix-daemon beží so zvýšenými oprávneniami, môže lokálny používateľ vykonať útok, ak sa môže pripojiť k procesu na pozadí prostredníctvom Unixového socketu (štandardne dostupný všetkým používateľom).
Zraniteľnosť existuje v obslužnom programe „restore-file“, ktorý sa používa na rozbalenie balíka počas jeho sťahovania bez čakania na jeho úplné stiahnutie a overenie stiahnutého archívu pomocou digitálneho podpisu. Problém je spôsobený nedostatočnou kontrolou znakov „.“, „/“ a „..“ v cestách k súborom v archíve. Nahradením neplatných názvov súborov do archívu môže útočník zapísať ľubovoľný súbor na ľubovoľné miesto v súborovom systéme, v závislosti od oprávnení, s ktorými beží proces guix-daemon na pozadí.
Ak chcete spustiť svoj kód v systéme, môžete napríklad pridať skript automatického spúšťania, ako napríklad „~/.bashrc“ alebo ~/.profile, alebo upraviť súbor ~/.ssh/authorized_keys obsahujúci kľúče SSH. Ak guix-daemon beží ako používateľ root v systéme s viacerými používateľmi, útočník môže prepísať súbor s heslami alebo systémové skripty.
Možnosť vytvárať falošné servery na distribúciu škodlivých balíkov bola spôsobená tým, že postup sťahovania metadát (narinfo) o dostupných binárnych balíkoch (fetch-narinfos) neoveroval certifikát servera a spoliehal sa na to, že väčšina metadát bola digitálne podpísaná. Ukázalo sa, že podpis nepokrýval URL adresu na stiahnutie balíka, čo umožňovalo jeho sfalšovanie bez ohrozenia integrity metadát. Falošný balík by bol nakoniec zamietnutý z dôvodu neoverenia jeho obsahu oproti digitálne podpísanému hashu. Toto overenie sa však vykonalo po fáze rozbalenia, čo odhalilo problém so špeciálnymi znakmi v názvoch súborov.
Okrem príkazu „guix substitute“ používajú zraniteľný obslužný program „restore-file“ aj príkazy „guix offload“, „guix archive --extract“ a „guix challenge“, ktoré možno tiež použiť na zneužitie tejto zraniteľnosti. Ako riešenie sa navrhuje explicitné zadanie možnosti „--no-substitutes“ vo všetkých príkazoch guix. Oprava zraniteľnosti bola prijatá do kódovej základne Guix. Používateľom sa odporúča, aby si okamžite nainštalovali aktualizácie generované vývojármi pre guix a guix-daemon.
Okrem uvedeného problému boli v Guixe opravené ďalšie tri zraniteľnosti:
- Možnosť falšovania binárnych balíkov z dôvodu nedostatočného overenia súladu požadovaného balíka s vrátenými metadátami v obslužnom programe fetch-narinfos. Túto zraniteľnosť je možné zneužiť na vrátenie zastaranej verzie požadovaného balíka obsahujúcej zraniteľnosti.
- Určenie obsahu prvého riadku ľubovoľných súborov v systéme odoslaním požiadavky od lokálneho používateľa s URI „file://“ („--substitute-urls file:///etc/shadow“). Ak guix-daemon beží s oprávneniami root, prečíta požadovaný súbor, zistí, že nejde o metadáta, a vráti chybové hlásenie s uvedením riadku, ktorý sa nepodarilo analyzovať.
- Zadanie špeciálne vytvoreného názvu externého repozitára („../../../../newfile“) pri vykonávaní príkazov „guix pull“ a „guix time-machine“ umožňuje zápis informácií o commite do ľubovoľného existujúceho súboru v súborovom systéme, ak sa jeho obsah podobá zoznamu reťazcov Scheme. Túto zraniteľnosť možno použiť na útoky DoS, ale je možné, že nebezpečnejšie manipulácie so systémom sa dajú dosiahnuť šikovnou manipuláciou s pseudosúborovým systémom /proc.
Zdroj: opennet.ru
