Exploiteerbare kwetsbaarheid op afstand in de Linux-kernel, die zich manifesteert bij gebruik van het TIPC-protocol

In de Linux-kernelmodule die het netwerkprotocol TIPC (Transparent Inter-process Communication) ondersteunt, is een kwetsbaarheid (CVE-2022-0435) ontdekt die mogelijk in staat is om Code op kernel-niveau uit te voeren door het verzenden van speciaal gevormde netwerkpakketten. Het probleem betreft alleen systemen met de geladen kernelmodule tipc.ko en een geconfigureerde TIPC-stack, die meestal wordt gebruikt in clusters en standaard niet is ingeschakeld in niet-gespecialiseerde Linux-distributies.

Het is opgemerkt dat bij het bouwen van de kernel met de modus 'CONFIG_FORTIFY_SRC=y' (toegepast in RHEL), die extra grenzencontroles toevoegt aan de functie memcpy(), de exploitatie beperkt is tot een noodstop (de kernel komt in een panieksituatie). Wanneer uitgevoerd zonder extra controles en bij een lek van informatie over de canary-labels die worden gebruikt ter bescherming van de stack, kan het probleem worden gebruikt voor remote code-execution met kernrechten. De onderzoekers die het probleem hebben ontdekt, beweren dat de exploitatie techniek triviaal is en na het wereldwijd verhelpen van de kwetsbaarheid in distributies zal worden onthuld.

De kwetsbaarheid wordt veroorzaakt door een stack-overflow die optreedt bij het verwerken van pakketten, waarbij de waarde van het veld met het aantal deelnemende knooppunten domein, deze de 64 overschrijdt. Voor het opslaan van de knooppuntparameters in de module tipc.ko wordt een vaste array 'u32 members[64]' gebruikt, maar tijdens de verwerking van het aangegeven knooppuntnummer in het pakket wordt de waarde van 'member_cnt' niet gecontroleerd, wat het mogelijk maakt om waarden groter dan 64 te gebruiken voor gecontroleerde overschrijving van gegevens in het geheugen, direct na de structuur 'dom_bef'.

De fout die tot de kwetsbaarheid leidt, is op 15 juni 2016 ingevoerd en maakte deel uit van de Linux-kernel 4.8. De kwetsbaarheid is verholpen in de releases van de Linux-kernel 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 en 4.9.301. In de meeste distributies blijft het probleem echter onopgelost: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

Het TIPC-protocol is oorspronkelijk ontwikkeld door Ericsson en is bedoeld voor interprocesscommunicatie binnen een cluster, waarbij het voornamelijk op clusterknopen wordt geactiveerd. TIPC kan zowel bovenop Ethernet als bovenop UDP (netwerkpoort 6118) werken. Bij gebruik op Ethernet kan een aanval worden uitgevoerd vanuit het lokale netwerk, terwijl bij UDP dit vanuit het wereldwijde netwerk kan gebeuren, mits de poort niet door een firewall is afgeschermd. Een aanval kan ook worden uitgevoerd door een niet-geprivilegieerde lokale gebruiker van de host. Om TIPC te activeren, is het nodig om de kernelmodule tipc.ko te laden en de binding aan de netwerkinterface in te stellen via netlink of de tipc-tool.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster