Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-8452-check — Verhaltensbasierter Patch-Zustands-Detektor für Citrix NetScaler CVE-2026-8452. Sendet gezielt erstellte SAML-Anfragen, um festzustellen, ob die PrefixList-Größenprüfung vorhanden ist, ohne Speicher auszunutzen oder zu korrumpieren. | Kitploit
Tools/GitHubGitHub/bishopfox/cve-2026-8452-check
SchwachstellenscannerSchwachstellenanalyseWebsicherheitNetzwerksicherheit
GitHubbishopfox/cve-2026-8452-check

CVE-2026-8452-check

Verhaltensbasierter Patch-Zustands-Detektor für Citrix NetScaler CVE-2026-8452. Sendet gezielt erstellte SAML-Anfragen, um festzustellen, ob die PrefixList-Größenprüfung vorhanden ist, ohne Speicher auszunutzen oder zu korrumpieren.

Repository anzeigen
113vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Citrix NetScaler SAML PrefixList Heap Overflow – Skript zur Erkennung des Patch-Zustands

Eine sichere, nicht-destruktive Prüfung des Patch-Zustands für CVE-2026-8452, den Heap-Overflow vor der Authentifizierung im SAML-Signatur-Kanonisierer von Citrix NetScaler ADC / NetScaler Gateway (CTX696604, CVSS 8.8). Eine übermäßig große PrefixList der exklusiven Kanonisierung lässt während der Kanonisierung einen Puffer fester Größe überlaufen, was NetScaler vor der Validierung der Signatur durchführt, die sie trägt – der gesamte Pfad ist also ohne Anmeldedaten, ohne Sitzung und ohne gültige Signatur erreichbar. Gemeldet von Michael Tucker vom XOR-Team von JPMorgan Chase; Root-Cause- und Exploit-Analyse mit freundlicher Genehmigung von watchTowr Labs.

Dieses Skript nutzt den Fehler nicht aus und korrumpiert keinen Speicher. Es beantwortet eine Frage pro Ziel: Ist der Fix auf diesem Gerät vorhanden? – ermittelt verhaltensbasiert, indem der Patch beobachtet wird, statt die Build-Version zu erraten.

Ist die Ausführung sicher?

Ja. Es ist für den Einsatz in Produktion und für Bewertungen konzipiert:

  • Die Sonde bleibt unterhalb der Korruptionsschwelle. 575 Bytes sind lang genug, dass gepatchte und ungepatchte Builds unterschiedlich antworten, und weit unterhalb der Länge, bei der die Speicherkorruption auf einem ungepatchten Gerät beginnt. Validierte Messung an Appliances über beide unterstützten Zweige und beide Patch-Zustände, einschließlich beider Fix-Builds.
  • Die Schwelle, die sie unterbietet, ist eine feste Code-Konstante, keine Eigenschaft einer bestimmten Bereitstellung. Behobene Builds akzeptieren eine PrefixList von 512 Bytes und lehnen 513 oder mehr ab. Diese Grenze wurde bytegenau lokalisiert, ist auf beiden unterstützten Zweigen identisch und verschiebt sich weder mit der Konfiguration der Appliance noch mit der Form der umgebenden SAML-Nachricht – bestätigt durch Tests beider Routen, die den Wert in deutlich unterschiedlichen Mengen an XML einbetten, und die Feststellung, dass das Verhalten beim gleichen Byte umschlägt. 575 liegt 63 Bytes unter der Grenze, daher hängt das Urteil nicht davon ab, wie ein Ziel zufällig konfiguriert ist.
  • Durch Patchen lehnen Appliances lange SAML-Werte nicht generell ab. Die Grenze gilt speziell für das PrefixList-Attribut. Das Aufblähen anderer Felder darüber hinaus – Assertion-Consumer-Service-URLs, Issuer-Namen, Algorithmus-Kennungen, Digest- und Signaturwerte – ändert auf einem behobenen Build nichts, daher sollte die Anwendung des Fixes eine funktionierende SAML-Konfiguration nicht zum Scheitern bringen.
  • Es wird kein Speicher korrumpiert und kein Prozess neu gestartet. Auf einem gepatchten Build wird die Sonde bei der Größenprüfung abgewiesen; auf einem ungepatchten Build scheitert sie harmlos im Parser. Keiner von beiden erreicht den Überlauf.
  • In die Scan-Ausgabe gelangt nichts Sensibles. Die Sonde trägt nur synthetische Namespace-Präfix-Tokens, und das Tool meldet ein Urteil, keine Antwort-Bodys.
  • Zwei feste Längen, niemals ein Sweep. Die 575-Byte-Sonde plus ein 35-Byte-Kontrollwert auf der Route, die antwortet. Das Tool durchläuft nie einen Bereich von Längen und sendet nie eine andere Länge.

Wenn Sie die Sonde verändern, ändern Sie nicht PROBE_PREFIXES und führen Sie keinen Längen-Sweep durch. 575 Bytes sind tragend. Andere PrefixList-Längen können eine Appliance destabilisieren – in mindestens einem Fall auf einem Build, der diesen Fix trägt – daher ist ein Längen-Sweep kein sicherer Weg, diesen Fehler zu untersuchen, und kürzer ist nicht sicherer.

So funktioniert es

Gepatchte Builds lehnen eine übermäßig große PrefixList sauber ab, mit einer markanten Meldung. Ungepatchte Builds fallen durch den Parser und geben einen generischen internen Fehler zurück. Eine identische Anfrage, zwei verschiedene Antworten:

575-Byte-PrefixListAntwort
Ungepatcht500 Internal Server Error 43549
Gepatcht200 Malformed Assertion sent to Netscaler

Zwei Routen werden versucht, zuerst IdP, und gestoppt, sobald eine eine Antwort liefert. Jede für sich ist ausreichend, und zusammen decken sie beide SAML-Rollen ab:

RouteAnfrageVoraussetzung
1 (erste)POST /saml/login — signierte AuthnRequest, PrefixList in ds:SignedInfoeine an den Ziel-vserver gebundene SAML-IdP-Richtlinie
2 (Fallback)POST /cgi/samlauth — SAMLResponse, PrefixList in der Assertion-Signaturein SAML-SP-Assertion-Consumer-Service auf dem Ziel-vserver

Die IdP-Route kommt zuerst, weil sie die robustere der beiden ist. Sie ist unempfindlich gegenüber dem Issuer-Wert, der AssertionConsumerServiceURL und gegenüber Clock-Skew – eine IssueInstant weit außerhalb der Toleranz der Appliance für Clock-Skew unterscheidet weiterhin korrekt, da die Kanonisierung sowohl vor der Zeitprüfung als auch vor der Signaturprüfung erfolgt.

Die AuthnRequest für Route 1 muss signiert sein. Eine unsignierte liefert auf gepatchten und ungepatchten Builds 200 Malformed Assertion sent to Netscaler, was byteidentisch mit dem gepatchten Signal ist. Eine Sonde, die den Signaturblock weglässt, meldet daher jede Appliance als gepatcht. Die Signatur muss nicht gültig sein, und die dieses Tools ist es nicht; sie muss nur vorhanden sein, denn ihr SignedInfo ist das, was die PrefixList in den Kanonisierer bringt.

Verhalten an der Fix-Grenze

Beide unterstützten Zweige ändern ihr Verhalten genau beim Fix-Build, auf beiden Routen:

BuildUrteil
13.1-63.16letzte verwundbare 13.1VULNERABLE
13.1-63.18erste behobene 13.1PATCHED
14.1-66.59verwundbare 14.1VULNERABLE
14.1-72.61erste behobene 14.1PATCHED

13.1-63.16 und 63.18 sind aufeinanderfolgende Releases, daher ist die Änderung dem Patch selbst zuzuschreiben und nicht dem Drift über dazwischenliegende Builds.

Das sind die Builds, in denen dieser Fix zum ersten Mal auftrat, und die Sonde erkennt genau diesen Übergang. Es sind nicht mehr die Builds, auf die man upgraden sollte: Spätere Bulletins haben sie überholt, daher antworten 13.1-63.18 und 14.1-72.61 hier beide mit PATCHED, bleiben aber neueren Problemen ausgesetzt. Siehe Remediation für die aktuellen behobenen Builds.

Warum nicht den Build per Fingerprint erkennen?

Weil es bei diesem Fehler selbst prinzipiell nicht funktionieren kann. 13.1-63.16 und 13.1-63.18, die Builds direkt auf beiden Seiten des Fixes, liefern byteidentische tmindex.html, base.css und resources.js aus – der Fix berührt kein Web-Asset. Statische Asset-Hashes kollidieren auch über Zweige hinweg, sodass ein hash-basierter Ansatz eine verwundbare Appliance einem gepatchten Build zuordnen und sie als sauber melden kann – das ist der schlimmste Fehlermodus, den ein Erkennungstool haben kann. Build-Fingerprinting ist daher bewusst nicht implementiert. Der Patch-Zustand stammt von der Sonde oder von show ns version, wenn Sie Anmeldedaten haben.

Voraussetzungen

  • Python 3.8+, nur Standardbibliothek – keine Drittanbieter-Pakete.

Verwendung```bash

single target

./cve_2026_8452_check.py https://gateway.example.com

a specific AAA / Gateway virtual server

./cve_2026_8452_check.py https://gateway.example.com:9443

scan a list, one target per line ('#' comments allowed), compact output

./cve_2026_8452_check.py -f targets.txt --brief

Tool herunterladen