Zranitelnosti v snapd a Rust Coreutils umožňující získání root práv v Ubuntu

Společnost Qualys odhalila zranitelnost (CVE-2026-3888) v organizaci práce mezi snap-confine a systemd-tmpfiles v Ubuntu, která umožňuje neprivilegovanému uživateli získat root přístup k systému. Problém se projevuje v Ubuntu v konfiguraci ve výchozím nastavení od verze 24.04. Ve verzích Ubuntu 16.04-22.04 může být zranitelnost zneužita v nestandardních konfiguracích, které napodobují chování novějších verzí distribuce. Oprava je pro Ubuntu k dispozici včerejším aktualizacím balíčku snapd. V snapd byla problém odstraněn v aktualizaci 2.75.

Zranitelnost vzniká z důvodu nesprávné interakce utility snap-confine a systemd-tmpfiles, které se provádějí s vyvyšovanými privilegii. Utility snap-confine vytváří sandboxové prostředí pro spuštění snap aplikace, zatímco systemd-tmpfiles provádí automatické čištění dočasných souborů a adresářů. Výchozí nastavení utility systemd-tmpfiles je nakonfigurováno tak, aby odstraňovalo všechny staré soubory a adresáře v /tmp, což může být využito útočníkem k nahrazení adresáře /tmp/.snap v okamžiku po jeho odstranění utility systemd-tmpfiles, ale před jeho opětovným vytvořením příkazem snap-confine.

Útok spočívá v čekání na spuštění procesu odstraňování dočasných souborů, nahrazení adresáře /tmp/.snap po jeho odstranění a umístění modifikované kopie knihoven /tmp/.snap/usr/lib/x86_64-linux-gnu.exchange. Útočníkovi může být potřeba několik dní čekání na spuštění systemd-tmpfiles, protože v Ubuntu 24.04 se proces čištění spouští jednou za 10 dní, a v novějších verzích jednou za 30 dní. Po nahrazení adresáře dosahuje útočník inicializace nového sandboxového prostředí pomocí snap-confine.

Během formování obsahu sandboxového prostředí v dočasném adresáři /tmp/.snap čeká útočník na správný okamžik a přejmenovává /tmp/.snap/usr/lib/x86_64-linux-gnu.exchange na /tmp/.snap/usr/lib/x86_64-linux-gnu, čímž nahrazuje knihovny a zajišťuje jejich bind-montáž s právy root. Tímto způsobem útočník získává kontrolu nad sdílenými knihovnami a loaderem ld.so, spouštěnými v sandboxovém prostředí snap, a může dosáhnout vykonání libovolného kódu s právy root prostřednictvím spuštění jakéhokoli suid programu, ve kterém se používá dynamické propojování.

S root přístupem v sandboxovém prostředí izolovaném pomocí AppArmor a filtrem systémových volání založeným na seccomp může útočník kopírovat /bin/bash do adresáře /var/snap/$SNAP/common/ a nastavit mu práva "04755" (suid root). I když byla práva změněna uvnitř sandboxového prostředí, soubor s měněnými právy je dostupný i v hlavním systému, a proto k získání plného root přístupu stačí spustit /var/snap//common/bash obyčejným nepř privilegeovaným uživatelem z běžného systémového prostředí.

Současně byla odhalena zranitelnost v nástroji uutils coreutils (Rust Coreutils), analogii balíčku GNU Coreutils, napsaného v jazyce Rust. Zranitelnost umožňuje nepř privilegeovanému uživateli získat práva root v systému. Problém byl odhalen v procesu recenzování změn v Ubuntu 25.10 a byl obchůzen před uvedením Ubuntu 25.10 dodáním /usr/bin/gnurm místo uutils rm. V balíčku uutils byla chyba opravena ve vydání uutils coreutils 0.3.0, aniž by byla zaznamenána v seznamu změn o odstranění zranitelnosti (bylo uvedeno, že v rm, du, chmod a chgrp byl implementován bezpečný způsob obcházení cest).

Problém je způsoben stavem závodu v utilitě "rm", který umožňuje lokálnímu uživateli nahradit obsah adresáře symbolickým odkazem během odstraňování souboru pod kontrolou uživatele procesem "rm" s právy root. Mezi jiným může být zranitelnost zneužita při každodenním spouštění z cron skriptu /etc/cron.daily/apport, který se spouští s právy root a rekurzivně odstraňuje obsah adresáře /var/crash, který je dostupný k zápisu všem uživatelům v systému.

Při rekurzivním odstraňování adresářů utilita rm nejprve kontroluje všechny adresáře a poté je postupně odstraňuje v opačném pořadí, přičemž volá funkci rmdir(). Pokud se podaří nahradit rodičovský adresář symbolickým odkazem ihned po kontrole tohoto adresáře, ale před kontrolou jeho vnořených podadresářů, operace povede k odstranění adresáře, na který odkazuje symbolický odkaz. Tímto způsobem lze dosáhnout nejen odstranění jakéhokoli souboru v systému, ale také zvýšení privilegií pomocí odstranění adresáře /tmp/snap-private-tmp/$SNAP/tmp/.snap za účelem nahrazení obsahu sandboxového prostředí snap balíčku (metoda získání root je podobná první zranitelnosti).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster