Schwachstelle im IPv6-Stack des Linux-Kernels, die Remote-Codeausführung ermöglicht

Information über die Schwachstelle CVE-2023-6200 wurde offengelegt. Diese Schwachstelle im Netzwerk-Stack des Linux-Kernels ermöglicht es unter bestimmten Umständen einem Angreifer im lokalen Netzwerk, die Ausführung eigenen Codes zu erlangen, indem er ein speziell gestaltetes ICMPv6-Paket mit einer Router Advertisement (RA)-Nachricht sendet, die für die Ankündigung von Routerinformationen gedacht ist.

Die Schwachstelle kann nur im lokalen Netzwerk ausgenutzt werden und tritt in Systemen auf, die IPv6-Unterstützung aktiviert haben und bei denen der sysctl-Parameter «net.ipv6.conf.<Netzwerk_Interface_Name>.accept_ra» aktiv ist (dies kann mit dem Befehl «sysctl net.ipv6.conf| grep accept_ra» überprüft werden), der standardmäßig in RHEL und Ubuntu für externe Netzwerkinterfaces deaktiviert ist, aber für das Loopback-Interface aktiviert ist, was einen Angriff vom selben System ermöglicht.

Die Schwachstelle wird durch einen Race Condition bei der Verarbeitung von veralteten Einträgen durch den Garbage Collector fib6_info verursacht, was zu einem Zugriff auf bereits freigegebenen Speicher (use-after-free) führen kann. Beim Empfang eines ICMPv6-Pakets mit einer Router Advertisement (RA)-Nachricht ruft der Netzwerk-Stack die Funktion ndisc_router_discovery() auf. Wenn in der RA-Nachricht Daten zur Lebensdauer der Route enthalten sind, wird die Funktion fib6_set_expires() aufgerufen, die die Struktur gc_link ausfüllt. Um veraltete Einträge zu bereinigen, wird die Funktion fib6_clean_expires() verwendet, die den Eintrag in gc_link abtrennt und den durch die Struktur fib6_info verwendeten Speicher freigibt. Zu einem bestimmten Zeitpunkt ist der Speicher für die Struktur fib6_info bereits freigegeben, aber der Verweis auf diese bleibt weiterhin in der Struktur gc_link.

Die Schwachstelle tritt ab der Version 6.6 auf und wurde in den Versionen 6.6.9 und 6.7 behoben. Der Status der Behebung der Schwachstelle in den Distributionen kann auf den folgenden Seiten eingesehen werden: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Zu den Distributionen, die Pakete mit dem Kernel 6.6 liefern, gehören Arch Linux, Gentoo, Fedora, Slackware, OpenMandriva und Manjaro. In anderen Distributionen könnte es möglich sein, dass Änderungen mit Fehlern in Pakete, die ältere Kernel-Versionen verwenden, zurückportiert werden (zum Beispiel wird in Debian erwähnt, dass das Paket mit dem Kernel 6.5.13 verwundbar ist, während die problematische Änderung in der Version 6.6 auftrat). Als vorübergehende Schutzmaßnahme kann IPv6 deaktiviert oder der Wert 0 für die Parameter „net.ipv6.conf.*.accept_ra“ vergeben werden.

Quelle: opennet.ru

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster