SicherheitsanfĂ€lligkeit im IPv6-Stack des Linux-Kernels, die die AusfĂŒhrung von Code aus der Ferne zulĂ€sst.

Die Informationen ĂŒber die CVE-2023-6200-Schwachstelle im Netzwerkstack des Linux-Kernels wurden veröffentlicht. Diese ermöglicht es einem Angreifer unter bestimmten UmstĂ€nden, von einem lokalen Netzwerk aus die AusfĂŒhrung seines Codes durch das Senden eines speziell gestalteten ICMPv6-Pakets mit einer Router Advertisement (RA) Nachricht zu erlangen, die dafĂŒr gedacht ist, Informationen ĂŒber den Router zu annoncieren.

Die Schwachstelle kann nur aus dem lokalen Netzwerk ausgenutzt werden und tritt in Systemen auf, die IPv6-UnterstĂŒtzung aktiviert haben und bei denen der sysctl-Parameter „net.ipv6.conf..accept_ra“ (kann mit dem Befehl „sysctl net.ipv6.conf | grep accept_ra“ ĂŒberprĂŒft werden) aktiviert ist. StandardmĂ€ĂŸig ist dieser in RHEL und Ubuntu fĂŒr externe Netzwerkinterfaces deaktiviert, jedoch fĂŒr das Loopback-Interface aktiviert, was einen Angriff vom selben System aus ermöglicht.

Die Schwachstelle wird durch einen Race-Condition bei der Verarbeitung veralteter fib6_info-EintrĂ€ge durch den Garbage Collector verursacht, was zu einem Zugriff auf bereits freigegebenen Speicher (use-after-free) fĂŒhren kann. Bei Empfang eines ICMPv6-Pakets mit einer Router-AnkĂŒndigungsnachricht (RA, Router Advertisement) ruft der Netzwerkstack die Funktion ndisc_router_discovery() auf. Wenn in der RA-Nachricht Daten zur Lebensdauer der Route vorhanden sind, wird die Funktion fib6_set_expires() aufgerufen und die gc_link-Struktur ausgefĂŒllt. Zur SĂ€uberung veralteter EintrĂ€ge wird die Funktion fib6_clean_expires() verwendet, die den Eintrag von gc_link detachiert und den Speicher, der von der fib6_info-Struktur genutzt wird, reinigt. Dabei gibt es einen bestimmten Moment, in dem der Speicher fĂŒr die fib6_info-Struktur bereits freigegeben ist, die Referenz darauf jedoch noch in der gc_link-Struktur vorhanden ist.

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. Unter den Distributionen, die Pakete mit dem Kernel 6.6 bereitstellen, sind Arch Linux, Gentoo, Fedora, Slackware, OpenMandriva und Manjaro zu nennen. In anderen Distributionen kann das fehlerhafte Update in Paketen mit Ă€lteren Kernels verzögert zurĂŒckportiert werden (zum Beispiel wird in Debian erwĂ€hnt, dass das Paket mit dem Kernel 6.5.13 anfĂ€llig ist, obwohl die problematische Änderung in der Version 6.6 aufgetreten ist). Als vorĂŒbergehende Schutzmaßnahme kann IPv6 deaktiviert oder der Parameter „net.ipv6.conf.*.accept_ra“ auf 0 gesetzt werden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4