Fernangreifbare Schwachstelle im TCP-Stack des Linux-Kernels

Das Unternehmen Anthropic hat Informationen über eine kritische Sicherheitsanfälligkeit (CVE-2026-98432) im TCP-Stack des Linux-Kernels veröffentlicht, die die Fernausführung von Code durch das Senden speziell gestalteter Pakete ermöglicht. Es wurde ein funktionierender Exploit erstellt, der es ermöglicht, Code auf Kernel-Ebene auszuführen und sich remote root-Rechte im System zu verschaffen. Der vorbereitete Exploit ist für Angriffe auf Systeme geeignet, die Serverprozesse betreiben und Verbindungen über Netzwerksockets akzeptieren, die das MPTCP-Protokoll (Multipath TCP) unterstützen. Die Unterstützung von MPTCP kann an einzelnen Netzwerksockets aktiviert werden, was standardmäßig in der Standardbibliothek der Programmiersprache Go ab Version Go 1.24 (Februar 2025) erfolgt.

Der vorbereitete Exploit kann bei Verwendung beliebiger Serveranwendungen in der Programmiersprache Go angewendet werden, einschließlich des HTTP-Servers Caddy, sofern die Möglichkeit besteht, Netzwerpakete an den von ihnen erstellten lauschen Socket zu senden. Da die Schwachstelle direkt im IPv4-Stack vorhanden ist und nicht spezifisch für MPTCP ist, wird nicht ausgeschlossen, dass Exploits erstellt werden, die ohne Bezug zu MPTCP arbeiten, aber solche Exploits sind bisher nicht demonstriert worden. Zum Beispiel könnte die Schwachstelle bei der Verarbeitung von Socket-Migrationsanfragen ausgenutzt werden, die in Konfigurationen mit dem Parameter net.ipv4.tcp_migrate_req=1 verfügbar sind, oder bei der Verwendung von eBPF-Programmen mit der Option BPF_SK_REUSEPORT_SELECT_OR_MIGRATE.

Die Schwachstelle wird durch einen Wettlaufzustand verursacht, der bei gleichzeitiger Verarbeitung von wiederholt gesendeten SYN-Anfragen zur Einrichtung einer TCP-Verbindung auftritt. Da die Funktion tcp_v4_syn_recv_sock() Parameter aus der Struktur ireq->ireq_opt über eine Referenz und nicht durch Kopieren übergibt, kann unter bestimmten Umständen eine Situation entstehen, in der der Speicher für die Strukturen inet_opt und ireq_opt mit den Socket-Parametern bereits freigegeben wurde, aber die damit verbundenen Socket-Optionen weiterhin verwendet werden (use-after-free).

Die Remote-Exploitation erfolgt durch das Senden einer Reihe zeitlich synchronisierter Netzwerkabfragen. Der erstellte Exploit ist auch in Kernel anwendbar, die Adressrandomisierung (KASLR) verwenden, jedoch erfordert das Treffen des Race-Condition-Fensters relativ viel Zeit und eine große Anzahl an Wiederholungsversuchen. Es wird erleichtert, dass das Nicht-Treffen des Race-Condition-Fensters lediglich zu einem Zurücksetzen der Verbindungsaufbau-Sitzung (Handshake) führt und nicht zum Absturz des Kernels, was unendliche Versuche ermöglicht. Im erstellten Prototype des Exploits benötigte die Durchführung des Angriffs etwa eine Stunde – 48 Minuten zur Bestimmung des Speicherlayouts und weitere 5 Minuten zur Organisation der Codeausführung.

Garantierte Blockierungsumgehungen der Schwachstelle sind derzeit nicht verfügbar – die einzige zuverlässige Option ist die Installation des Kernel-Updates. Das Problem tritt ab Kernel Linux 4.4 auf und ist in den Versionen 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 und 7.3 behoben. Den Status der Behebung von Schwachstellen in den Distributionen kann man auf folgenden Seiten einsehen: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch,
Fedora.

Aus den Empfehlungen zur Bekämpfung spezifischer Exploit-Methoden, die die Schwachstelle nicht allgemein blockieren, kann man die Deaktivierung der MPTCP-Unterstützung und das Setzen des sysctl-Kernelparameters net.ipv4.tcp_migrate_req auf 0 hervorheben:

sysctl -w net.mptcp.enabled=0
sysctl -w net.ipv4.tcp_migrate_req=0

Um vorhandene Prozesse im System zu identifizieren, die Sockets mit
MPTCP verwenden, können die folgenden Befehle genutzt werden:

ip mptcp endpoint show
ip mptcp limits show

Um die MPTCP-Unterstützung in Go-Programmen zu deaktivieren, sollte das Flag „multipathtcp=0“ verwendet werden, was durch Setzen der Umgebungsvariable „GODEBUG=multipathtcp=0“ erreicht werden kann. Um die MPTCP-Unterstützung während des Builds zu deaktivieren, kann „godebug multipathtcp=0“ in die go.mod Moduldatei hinzugefügt werden. Im Anwendungscode kann die Verwendung von MPTCP über die Funktionen net.Dialer.SetMultipathTCP und net.ListenConfig.SetMultipathTCP deaktiviert werden.

Neben dem besprochenen Problem hat das Unternehmen Anthropic auch eine Reihe lokal ausnutzbarer Sicherheitsanfälligkeiten im Linux-Kernel, OpenBSD und FreeBSD angekündigt, die es ermöglichen, Root-Rechte im System zu erlangen und aus isolierten Containern auszubrechen; Sicherheitsanfälligkeiten in Chrome und Safari, die zur Ausführung von Code im System führen, wenn speziell gestaltete Webseiten geöffnet werden; eine Sicherheitsanfälligkeit im Windows-Kernel, die zu einem Absturz führt; eine Sicherheitsanfälligkeit in der Android-Plattform, die es ermöglicht, die Bildschirmsperre zu umgehen und auf persönliche Informationen und Fotos zuzugreifen, ohne das Gerät zu entsperren (der Angriff wurde auf einem Google Pixel 9-Smartphone demonstriert).

Zusatz:

  • In nginx gibt es seit Version 1.29.7 die Möglichkeit, die IPPROTO_MPTCP-Option für den hörenden Netzwerk-Socket zu aktivieren, jedoch ist dies standardmäßig nicht aktiviert.
  • In Lighttpd ist die Option zur Aktivierung von MPTCP ab der Version 1.4.76 verfügbar.
  • In Apache httpd wurden Patches zur Unterstützung von MPTCP im Branch Apache httpd 2.5-HEAD im Jahr 2024 hinzugefügt.
  • In systemd wurde die Unterstützung zur Aktivierung von MPTCP bei socket-basierter Aktivierung ab Version 257 hinzugefügt.
  • In Apache Traffic Server wird die Option zur Aktivierung von MPTCP seit Version 9.2.4 unterstützt.
  • In HAProxy ist die Option „mptcp{,4,6}@
    “ seit Version 3.1.0 verfügbar.
  • In Traefik ist das Setzen des Flags IPPROTO_MPTCP standardmäßig ab den Versionen 2.11.26, 3.4.2 und v3.5.0-rc1 aktiviert.
  • In der Datenbank Valkey ist ab Version 9.0.0 die Option „—mptcp“ sowie die Einstellungen „mptcp yes“ und „repl-mptcp yes“ verfügbar.

Quelle: opennet.ru

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster