Sicherheit & Datenschutz

Go 1.24: Standardmäßige MPTCP-Aktivierung setzt Linux-Server dem Risiko einer Kernel-RCE aus

Eine kritische Schwachstelle im Linux-Kernel ermöglicht Remote Code Execution über MPTCP. Go 1.24 aktiviert dieses Protokoll standardmäßig, was eine sofortige Absicherung für Entwickler erfordert.

Illustration der Go- und Linux-Symbole, die auf eine Sicherheitslücke hinweisen
Für diesen Artikel generierte Illustration

Automatisch aus dem englischen Original übersetzt.

Eine kritische Sicherheitslücke im Linux-Kernel, identifiziert als CVE-2026-98432, stellt ein schwerwiegendes Risiko für Server dar, auf denen Go-Anwendungen laufen. Das Problem betrifft einen Use-After-Free-Fehler bei der Verarbeitung von IPv4-TCP-Verbindungen, der zu Remote Code Execution führen kann. Da Go Version 1.24 Multipath TCP (MPTCP) unter Linux standardmäßig aktiviert, sind viele moderne Go-Dienste diesem Angriffsvektor unwissentlich ausgesetzt, es sei denn, es werden spezifische Gegenmaßnahmen ergriffen oder der Kernel gepatcht.

Was passiert ist

Das Go-Team hat nach der Offenlegung von CVE-2026-98432 eine dringende Warnung herausgegeben. Diese Schwachstelle befindet sich im Linux-Kernel und beeinflusst die Art und Weise, wie dieser IPv4-TCP-Verbindungen verarbeitet. Sicherheitsforscher bei Anthropic haben einen praktischen Exploit demonstriert, bei dem ein Server, der auf MPTCP-Verbindungen wartet, kompromittiert werden konnte, sodass ein Angreifer beliebigen Code remote ausführen konnte. Während der Proof-of-Concept speziell Systeme mit aktiven MPTCP-Listenern ins Visier nahm, ist der zugrunde liegende Speicherbeschädigungsfehler nicht streng auf MPTCP-Datenverkehr beschränkt. Das bedeutet, dass auch Systeme, die nicht explizit für Multipath-Networking konfiguriert sind, weiterhin anfällig für ähnliche Ausnutzungstechniken sein könnten.

Die zentrale Sorge der Go-Community ergibt sich aus einer Änderung, die in Go 1.24 eingeführt wurde. In dieser Version aktiviert die Runtime MPTCP automatisch für alle Listen-Sockets auf Linux-Systemen. Dieses Standardverhalten war darauf ausgelegt, die Netzwerkresilienz und -leistungsfähigkeit zu verbessern, ist aber aufgrund des Kernel-Fehlers nun zu einer erheblichen Angriffsfläche geworden. Die Go-Maintainer betonen, dass das Deaktivieren von MPTCP auf Anwendungsebene zwar einen temporären Schutz bietet, aber keine vollständige Lösung darstellt. Der grundlegende Fix erfordert ein Update des Host-Betriebssystems auf eine Kernel-Version, die den Patch für CVE-2026-98432 enthält.

Wie es funktioniert

Multipath TCP ist eine Erweiterung des Standard-TCP-Protokolls, die es einer einzelnen Verbindung ermöglicht, gleichzeitig mehrere Netzwerkpfade zu nutzen. Dies verbessert die Zuverlässigkeit und den Durchsatz durch die Bündelung von Bandbreite oder das Umschalten auf alternative Pfade, falls einer ausfällt. In Go 1.24 setzt das net-Paket automatisch die erforderlichen Socket-Optionen, um MPTCP beim Erstellen von Listenern unter Linux zu aktivieren. Dies geschieht transparent, sodass Entwickler keinen zusätzlichen Code schreiben müssen, um diese Funktion zu aktivieren.

Die Schwachstelle CVE-2026-98432 ist ein Use-After-Free-Fehler im TCP-Stack des Kernels. Wenn der Kernel bestimmte TCP-Pakete verarbeitet, gibt er möglicherweise ein Speicherobjekt vorzeitig frei, referenziert es aber weiterhin. Ein Angreifer kann spezifische Pakete so präparieren, dass dieser Zustand ausgelöst wird, wodurch er potenziell Speicherstrukturen überschreibt und die Kontrolle über den Ausführungsablauf übernimmt. Da Go 1.24 die Tür für die MPTCP-Verhandlung standardmäßig öffnet, wird jeder Go-Dienst, der auf einer öffentlichen Schnittstelle lauscht, zu einem potenziellen Ziel für diesen Exploit auf Kernel-Ebene – unabhängig davon, ob die Anwendungslogik tatsächlich Multipath-Funktionen nutzt.

Wichtige Details

  • Schwachstellen-ID: CVE-2026-98432 betrifft die IPv4-TCP-Verarbeitung im Linux-Kernel.
  • Auswirkung: Remote Code Execution (RCE) ist durch präparierte Pakete möglich.
  • Go-Version: Go 1.24 aktiviert MPTCP standardmäßig für Listen-Sockets unter Linux.
  • Primärer Fix: Aktualisieren Sie den Linux-Kernel sofort auf eine gepatchte Version.
  • Laufzeit-Minderung: Setzen Sie GODEBUG=multipathtcp=0 in der Umgebung, um MPTCP zu deaktivieren.
  • Build-Zeit-Minderung: Fügen Sie godebug multipathtcp=0 zur Datei go.mod hinzu.

Warum das wichtig ist

Für Software-Ingenieure und technische Leiter hebt dieser Vorfall die versteckten Abhängigkeiten zwischen Anwendungs-Runtimes und Betriebssystem-Kernels hervor. Viele Teams gehen davon aus, dass das Aktualisieren ihrer Sprach-Runtime oder ihres Anwendungs-Codes für die Sicherheit ausreicht. Da Go 1.24 jedoch einen Low-Level-Netzwerkstandard ändert, interagiert es gefährlich mit einem ungepatchten Kernel. Dies schafft ein Szenario, in dem eine sichere Anwendungscodebasis dennoch aufgrund von Infrastruktur-Schwachstellen kompromittiert werden kann. Es zwingt DevOps- und Plattform-Teams dazu, Kernel-Patches dringend über alle Produktionsumgebungen hinweg zu koordinieren.

Darüber hinaus warnt die Warnung davor, sich ausschließlich auf Deaktivierungen auf Anwendungsebene zu verlassen. Das Setzen von GODEBUG=multipathtcp=0 wird als "fragile Mitigation" (zerbrechliche Gegenmaßnahme) beschrieben. Wenn eine einzelne Dienstinstanz falsch konfiguriert ist oder wenn ein neuer Dienst ohne diesen Flag bereitgestellt wird, bleibt der gesamte Host gefährdet. Zusätzlich geht dieser Ansatz davon aus, dass alle Exploits einen aktiven MPTCP-Listener erfordern, was angesichts der allgemeinen Natur des Use-After-Free-Fehlers nicht unbedingt zutrifft. Diese Unsicherheit bedeutet, dass das Deaktivieren von MPTCP nur eine Übergangslösung ist, keine langfristige Sicherheitsstrategie.

Was Sie tun können

  • Priorisieren Sie das Patchen Ihrer Linux-Kernel auf Versionen, die CVE-2026-98432 beheben.
  • Falls sofortige Kernel-Updates nicht möglich sind, setzen Sie GODEBUG=multipathtcp=0 in Ihren Produktions-Umgebungsvariablen.
  • Fügen Sie godebug multipathtcp=0 zu Ihrer go.mod-Datei hinzu, um die Deaktivierung zum Build-Zeitpunkt durchzusetzen.
  • Prüfen Sie Ihre Infrastruktur, um sicherzustellen, dass keine Legacy-Dienste versehentlich MPTCP-Listener offenlegen.
  • Beobachten Sie die Diskussion im Go-Issue-Tracker auf zukünftige Änderungen am Standardverhalten.
  • Überprüfen Sie die Verwendung von net.Dialer.SetMultipathTCP und net.ListenConfig.SetMultipathTCP, um das Socket-Verhalten explizit zu steuern.
  • #go
  • #linux
  • #security
  • #mptcp
  • #kernel

Tools aus dem Bytechap-Shop

Weiterlesen

Alle Artikel