Zraniteľnosť vo VFS jadra Linuxu, ktorá vám umožňuje eskalovať vaše privilégiá

Zraniteľnosť (CVE-2022-0185) bola identifikovaná v rozhraní Filesystem Context API poskytovanom jadrom Linuxu, ktorá umožňuje lokálnemu používateľovi získať oprávnenia root v systéme. Výskumník, ktorý identifikoval problém, zverejnil ukážku exploitu, ktorý vám umožňuje spúšťať kód ako root na Ubuntu 20.04 v predvolenej konfigurácii. Plánuje sa, že exploit kód bude zverejnený na GitHub do týždňa po vydaní aktualizácie distribúcie, ktorá opravuje túto zraniteľnosť.

Zraniteľnosť existuje vo funkcii legacy_parse_param() vo VFS a je spôsobená chybou pri správnej kontrole maximálnej veľkosti parametrov poskytovaných na súborových systémoch, ktoré nepodporujú Filesystem Context API. Odovzdanie príliš veľkého parametra môže spôsobiť pretečenie celočíselnej premennej používanej na výpočet veľkosti zapisovaných údajov – kód má kontrolu pretečenia vyrovnávacej pamäte „if (len > PAGE_SIZE - 2 - size)“, čo však práca, ak je hodnota veľkosti väčšia ako 4094. pre pretečenie celého čísla cez dolnú hranicu (podtečenie celého čísla, pri pretypovaní 4096 - 2 - 4095 na int bez znamienka je výsledok 2147483648).

Táto chyba umožňuje pri prístupe k špeciálne navrhnutému obrazu systému súborov spôsobiť pretečenie vyrovnávacej pamäte a prepísanie údajov jadra po pridelenej oblasti pamäte. Na zneužitie zraniteľnosti musíte mať práva CAP_SYS_ADMIN, t.j. právomoci správcu. Problém je v tom, že neprivilegovaný používateľ môže získať takéto povolenia v izolovanom kontajneri, ak má systém povolenú podporu pre priestory názvov používateľov. Napríklad priestory názvov používateľov sú štandardne povolené na Ubuntu a Fedore, ale nie sú povolené na Debiane a RHEL (pokiaľ sa nepoužívajú platformy na izoláciu kontajnerov).

Problém sa objavuje od linuxového jadra 5.1 a bol opravený vo včerajších aktualizáciách 5.16.2, 5.15.16, 5.10.93, 5.4.173. Aktualizácie balíkov, ktoré opravujú túto chybu zabezpečenia, už boli vydané pre RHEL, Debian, Fedora a Ubuntu. Oprava zatiaľ nie je k dispozícii na Arch Linux, Gentoo, SUSE a openSUSE. Ako riešenie zabezpečenia pre systémy, ktoré nepoužívajú izoláciu kontajnerov, môžete nastaviť hodnotu sysctl "user.max_user_namespaces" na 0: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

Zdroj: opennet.ru

Pridať komentár