Zranitelnost ve správci balíčků Guix umožňuje vzdálené spuštění kódu.

Ve správci balíčků Guix byly identifikovány zranitelnosti (CVE nebylo přiřazeno) v implementaci interního příkazu „guix substitute“, který je automaticky vyvolán procesem guix-daemon na pozadí během instalace balíčků. Příkaz se používá ke stahování předpřipravených binárních balíčků z externích serverů a ověření jejich integrity pomocí digitálního podpisu. Nejzávažnější zranitelnost umožňuje vzdálené spuštění kódu v systému uživatele s oprávněními, pod kterými běží proces guix-daemon na pozadí.

Problém se týká všech konfigurací s procesem guix-daemon, bez ohledu na to, zda běží s root nebo s neprivilegovanými uživatelskými právy. Zneužití této zranitelnosti vyžaduje jakýkoli pokus o stažení předpřipravených binárních balíčků z server, ovládaný útočníkem. V tomto případě škodlivý serveru Nemusí být explicitně vybrána ani specifikována v uživatelském nastavení – lze ji definovat pomocí volby „--discover“, která umožňuje zosobnění serveru během útoku typu „man-in-the-middle“. V konfiguracích, kde guix-daemon běží se zvýšenými oprávněními, může lokální uživatel provést útok, pokud se může připojit k procesu na pozadí prostřednictvím unixového socketu (ve výchozím nastavení dostupný všem uživatelům).

Zranitelnost se nachází v obslužné rutině „restore-file“, která se používá k rozbalení balíčku během jeho stahování, aniž by se čekalo na jeho úplné stažení a ověření staženého archivu pomocí digitálního podpisu. Problém je způsoben absencí kontrol znaků „.“, „/“ a „..“ v cestách k souborům v rámci archivu. Dosazením neplatných názvů souborů do archivu může útočník zapsat libovolný soubor na libovolné místo v souborovém systému, v závislosti na oprávněních, pod kterými běží proces guix-daemon na pozadí.

Chcete-li například spustit svůj kód v systému, můžete přidat autorunovací skript, například „~/.bashrc“ nebo ~/.profile, nebo upravit soubor ~/.ssh/authorized_keys obsahující SSH klíče. Pokud guix-daemon běží jako uživatel root na víceuživatelském systému, může útočník přepsat soubor s hesly nebo systémové skripty.

Možnost vytvářet falešné servery pro distribuci škodlivých balíčků byla dána skutečností, že procedura pro stahování metadat (narinfo) o dostupných binárních balíčcích (fetch-narinfos) neověřovala certifikát serveru a spoléhala se na skutečnost, že většina metadat byla digitálně podepsána. Ukázalo se, že podpis nezakrýval URL adresu pro stahování balíčku, což umožňovalo jeho falešné použití bez narušení integrity metadat. Falešný balíček by byl nakonec odmítnut z důvodu neověření jeho obsahu s digitálně podepsaným hashem. Toto ověření však bylo provedeno až po fázi rozbalení, která odhalila problém se speciálními znaky v názvech souborů.

Kromě příkazu „guix substitute“ je zranitelný obslužný program „restore-file“ používán příkazy „guix offload“, „guix archive --extract“ a „guix challenge“, které lze také použít ke zneužití této zranitelnosti. Jako řešení se doporučuje explicitní zadání možnosti „--no-substitutes“ ve všech příkazech guix. Oprava této zranitelnosti byla přijata do kódové základny Guix. Uživatelům se doporučuje, aby si okamžitě nainstalovali aktualizace generované vývojáři pro guix a guix-daemon.

Kromě uvedeného problému byly v Guixu opraveny další tři zranitelnosti:

  • Možnost falšování binárních balíčků z důvodu chybějícího ověření shody požadovaného balíčku s vrácenými metadaty v obslužné rutině fetch-narinfos. Tuto zranitelnost lze zneužít k vrácení zastaralé verze požadovaného balíčku obsahující zranitelnosti.
  • Určení obsahu prvního řádku libovolných souborů v systému odesláním požadavku od lokálního uživatele s URI „file://“ („--substitute-urls file:///etc/shadow“). Pokud guix-daemon běží s root oprávněními, přečte požadovaný soubor, určí, že se nejedná o metadata, a vrátí chybovou zprávu s uvedením řádku, který nebylo možné analyzovat.
  • Zadání speciálně vytvořeného názvu externího repozitáře („../../../../newfile“) při provádění příkazů „guix pull“ a „guix time-machine“ umožňuje zapsat informace o potvrzení (commitu) do libovolného existujícího souboru v souborovém systému, pokud jeho obsah připomíná seznam řetězců Scheme. Tuto zranitelnost lze využít pro útoky DoS, ale je možné, že chytrou manipulací s pseudo-souborovým systémem /proc lze dosáhnout nebezpečnějších manipulací se systémem.

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster