V Netfilteri, podsystém jadra LinuxV nástroji na filtrovanie a úpravu sieťových paketov bola objavená zraniteľnosť (CVE-2024-1086). Táto zraniteľnosť umožňuje lokálnemu používateľovi spúšťať kód jadra a zvyšovať svoje privilégiá. Problém je spôsobený parametrom double-free v module nf_tables, ktorý napája filter paketov nftables. Bezpečnostný výskumník, ktorý túto zraniteľnosť objavil, vyvinul a publikoval funkčný prototyp zneužitia.
Fungovanie exploitu bolo demonštrované v nedávnych vydaniach. Debian и Ubuntu s jadrami Linux 5.14–6.6, ako aj v prostredí KernelCTF (Capture the Flag), ktoré obsahuje ďalšie záplaty na blokovanie typických metód zneužitia a používa ho spoločnosť Google vo svojom programe odmien za zraniteľnosti. Miera úspešnosti zneužitia sa odhaduje na 99.4 %. Sprievodný článok podrobne popisuje proces vytvorenia komplexného, viacvrstvového zneužitia a obchádzania ochrany jadra a mechanizmov na zmiernenie zneužitia.

Problém súvisí s chybou vo funkcii nft_verdict_init(), ktorá umožňuje použitie kladných hodnôt ako chybového kódu straty paketu (DROP) v hookoch. Toto je možné zneužiť na spustenie druhého volania funkcie free() vo funkcii nf_hook_slow() pre vyrovnávaciu pamäť, pre ktorú už bola volaná funkcia free(). K problému dochádza, keď je operácia NF_DROP vygenerovaná s chybou a jadro najprv interpretuje NF_DROP, ale potom vyrovnávaciu pamäť uvoľní a vráti stav NF_ACCEPT. Táto situácia má za následok uvoľnenie vyrovnávacej pamäte spojenej s paketom, ale jeho spracovanie nie je ukončené. Namiesto toho je odovzdaný inému obslužnému programu, ktorý následne zavolá funkciu free() druhýkrát.
Zraniteľnosť sa objavuje od verzie jadra Linux 3.15, ale zneužitie funguje s jadrami od verzie 5.14. Oprava zraniteľnosti bola navrhnutá vo vydaní jadra. Linux 6.8-rc1 a bola portovaná do stabilných vetiev 5.15.149, 6.1.76 a 6.6.15 koncom februára. Opravu zraniteľnosti môžete sledovať na nasledujúcich stránkach v distribúciách: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.
Okrem toho je možné si všimnúť sériu zraniteľností v module ksmbd, ktorý ponúka vstavané jadro Linux implementácia súboru server Na základe protokolu SMB: Zraniteľnosť CVE-2024-26592 umožňuje vzdialeným, neovereným útočníkom spúšťať kód s oprávneniami jadra na systémoch so zapnutým modulom ksmbd. Problém je spôsobený súbehom v kóde na spracovanie pripojenia TCP, ku ktorému dochádza v dôsledku nenastavenia správnych zámkov pri práci s objektom.
Zraniteľnosť CVE-2023-52440 tiež umožňuje vzdialené spustenie kódu s oprávneniami jadra, ale je spôsobená pretečením vyrovnávacej pamäte pri spracovaní neplatných kľúčov relácie z dôvodu nedostatočného overenia veľkosti údajov prijatých od používateľa pred ich kopírovaním do vyrovnávacej pamäte s pevnou veľkosťou.
Zraniteľnosti (1, 2, 3) CVE-2024-26594, CVE-2023-52442 a CVE-2023-52441 v ksmbd umožňujú vzdialeným, neovereným útokom určiť obsah pamäte jadra. CVE-2024-26594 je spôsobená nesprávnym overovaním údajov pri spracovaní prichádzajúcich tokenov SMB2 Mech, čo vedie k vráteniu údajov mimo hraníc. CVE-2023-52442 je spôsobená nedostatkom správneho overovania vstupu pri spracovaní reťazených požiadaviek. CVE-2023-52441 je spôsobená nedostatkom požadovaného overovania vstupu pri spracovaní požiadaviek na vyjednávanie pripojenia SMB2.
Zraniteľnosti CVE-2024-26594 a CVE-2024-26592 boli opravené v jadre 6.8 a opravných aktualizáciách predchádzajúcich stabilných vetiev 6.1.75, 6.6.14 a 6.7.2. Zostávajúce zraniteľnosti boli opravené v jadre 6.5 a aktualizáciách 5.15.145, 6.1.53 a 6.4.16.
Na záver môžeme spomenúť aktiváciu nového tímu vývojárov jadra. Linux, vytvorená na analýzu zraniteľností a posúdenie vzťahu záplat jadra k bezpečnostným problémom. Vo februári vývojári jadra vytvorili vlastnú službu CNA (CVE Numbering Authority), ktorá získala oprávnenie nezávisle priraďovať identifikátory CVE k zraniteľnostiam. Predtým priraďovanie CVE a analýza vzťahu záplat k potenciálnym zraniteľnostiam pripadali na vývojárov distribúcií a potenciálne zraniteľnosti v jadre neboli identifikované a boli uvedené spolu s bežnými záplatami. Výsledky novej služby prekonali všetky očakávania – v jadre sa teraz denne identifikuje až niekoľko desiatok nových zraniteľností, ktoré predtým neboli označené ako bezpečnostné problémy. Napríklad 26. marca boli nové identifikátory CVE priradené 14 zraniteľnostiam, ktoré predtým neboli považované za bezpečnostné problémy, a 25. marca 41 zraniteľnostiam.
Zdroj: opennet.ru
