In de Linux-kernel zijn verschillende gevaarlijke kwetsbaarheden ontdekt die een lokale gebruiker in staat stellen zijn privileges in het systeem te verhogen. Voor alle besproken problemen zijn werkende exploitprototypes voorbereid.
- De kwetsbaarheid (CVE-2022-0995) in het subsysteem voor het volgen van gebeurtenissen watch_queue leidt tot het schrijven van gegevens in het geheugen van de kernel buiten de toegewezen buffer. Een aanval kan worden uitgevoerd door elke niet-bevoorrechte gebruiker en kan leiden tot het uitvoeren van eigen code met kernelrechten. De kwetsbaarheid is aanwezig in de functie watch_queue_set_size() en is gerelateerd aan de poging om alle aanwijzers in de lijst te wissen, zelfs als er geen geheugen voor hen was toegewezen. Het probleem doet zich voor bij het bouwen van de kernel met de optie "CONFIG_WATCH_QUEUE=y", die in de meeste Linux-distributies wordt gebruikt.
De kwetsbaarheid is verholpen in een wijziging die op 11 maart aan de kernel is toegevoegd. De publicatie van pakketupdates in de distributies kan worden gevolgd op de volgende pagina's: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Een exploitprototype is al openbaar beschikbaar en stelt een roottoegang mogelijk bij het draaien op Ubuntu 21.10 met kernel 5.13.0-37.

- De kwetsbaarheid (CVE-2022-27666) in de kernelmodules esp4 en esp6 met de implementatie van ESP-transformaties (Encapsulating Security Payload) voor IPsec, gebruikt bij IPv4 en IPv6. De kwetsbaarheid stelt een lokale gebruiker met gewone privileges in staat om objecten in het geheugen van de kernel te overschrijven en zijn privileges in het systeem te verhogen. Het probleem wordt veroorzaakt door het ontbreken van een controle van de toegewezen geheugenomvang en de feitelijk verkregen gegevens, terwijl de maximale berichtomvang de maximale hoeveelheid geheugen kan overschrijden die voor de structuur skb_page_frag_refill is toegewezen.
De kwetsbaarheid is verholpen in de kernel op 7 maart (opgelost in 5.17, 5.16.15, enz.). De publicatie van pakketupdates in de distributies kan worden gevolgd op de volgende pagina's: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Een werkend exploitprototype dat gewone gebruikers in staat stelt roottoegang te krijgen op Ubuntu Desktop 21.10 in de standaardconfiguratie is al op GitHub geplaatst. Er wordt beweerd dat, met geringe aanpassingen, de exploit ook zal functioneren in Fedora en Debian. Opmerkelijk is dat de exploit oorspronkelijk was voorbereid voor de pwn2own 2022-wedstrijden, maar de kernelontwikkelaars ontdekten en verholpen een gerelateerde fout, waardoor besloten werd de details van de kwetsbaarheid te onthullen.
- Twee kwetsbaarheden (CVE-2022-1015, CVE-2022-1016) in de netfilter-subsystemen in de nf_tables-module, die verantwoordelijk is voor de werking van de nftables-pakketfilter. Het eerste probleem stelt een lokale niet-bevoegde gebruiker in staat om te schrijven buiten de toegewezen buffer op de stack. De bufferoverloop ontstaat bij het verwerken van bepaalde opgemaakte nftables-uitdrukkingen, die worden behandeld tijdens de controle van door de gebruiker opgegeven indexen met toegang tot de nftables-regels.
De kwetsbaarheid wordt veroorzaakt doordat de ontwikkelaars ervan uitgingen dat de waarde "enum nft_registers reg" één byte is, terwijl de compiler bij het inschakelen van bepaalde optimalisaties, volgens de C89-specificatie, een 32-bits waarde kan gebruiken. Vanwege deze eigenschap komt de grootte die voor controle en geheugenallocatie wordt gebruikt niet overeen met de werkelijke grootte van de gegevens in de structuur, wat leidt tot overlap van de staart van de structuur met de pointers op de stack.
Het probleem kan worden misbruikt om eigen code op kernniveau uit te voeren, maar voor een succesvolle aanval is toegang tot nftables vereist, wat kan worden verkregen in een afzonderlijke netwerknaamruimte (network namespaces) met CLONE_NEWUSER of CLONE_NEWNET-rechten (bijv. bij de mogelijkheid om een geïsoleerde container te starten). De kwetsbaarheid is ook nauw verbonden met de door de compiler toegepaste optimalisaties, die bijvoorbeeld worden ingeschakeld bij het bouwen in de modus "CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y". Misbruik van de kwetsbaarheid is mogelijk vanaf Linux-kernel 5.12.
De tweede kwetsbaarheid in netfilter wordt veroorzaakt door een verwijzing naar een al vrijgegeven geheugenruimte (use-after-free) in de nft_do_chain-handler en kan leiden tot een lek van niet-geïnitialiseerde geheugenruimten van de kernel, die kunnen worden gelezen via manipulaties met nftables-uitdrukkingen en bijvoorbeeld kunnen worden gebruikt om de adressen van pointers te bepalen bij het ontwikkelen van exploits voor andere kwetsbaarheden. Misbruik van de kwetsbaarheid is mogelijk vanaf Linux-kernel 5.13.
Kwetsbaarheden zijn verholpen in de corrigerende updates van de kernel 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 en 4.9.309. U kunt de publicatie van pakketupdates in de distributies volgen op deze pagina's: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. De onderzoeker die de problemen heeft ontdekt, heeft verklaard dat er werkende exploits voor beide kwetsbaarheden in de maak zijn, die binnen enkele dagen gepubliceerd zullen worden, nadat de distributies de pakketupdates voor de kernel hebben uitgegeven.
Bron: opennet.ru

