Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-34908-check — Sicher erkennen, ob ein UniFi OS Server anfällig für CVE-2026-34908 ist. | Kitploit
Tools/GitHubGitHub/bishopfox/cve-2026-34908-check
AufklärungSchwachstellenscannerExploitationWebanwendungs-ExploitationInformationsbeschaffungPenetrationstests
GitHubbishopfox/cve-2026-34908-check

CVE-2026-34908-check

Sicher erkennen, ob ein UniFi OS Server anfällig für CVE-2026-34908 ist.

Repository anzeigen
664vor 2 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

UniFi OS Server – Skript zur Erkennung einer unauthentifizierten RCE-Kette

Ein sicherer Detektor für die unauthentifizierte Remote-Codeausführungskette in UniFi OS Server ≤ 5.0.6, veröffentlicht in Ubiquitis Security Advisory Bulletin 064:

CVEKlasseRolle in der Kette
CVE-2026-34908 / CVE-2026-34909Unzureichende Zugriffskontrolle / Pfad-TraversalAuth-Gateway-Bypass (der Einstieg)
CVE-2026-34910Unzureichende Eingabevalidierung → BefehlsinjektionUnauthentifizierte RCE via Bypass erreicht

Behoben in UniFi OS Server 5.0.8.

Ist die Ausführung sicher?

Ja. Der Detektor ist für den Produktions- und Bewertungseinsatz ausgelegt:

  • Es wird kein Befehl ausgeführt. Die Sonde erreicht den verwundbaren Endpunkt ohne einen erforderlichen Parameter, sodass der Handler die fehlende Eingabe ablehnt und wir den Fehler anhand dieses Validierungsfehlers bestätigen.
  • Es wird kein Zielzustand geändert. Jede Anfrage ist ein einfacher GET.
  • Falsch-Positiv-Schutz. Ein VULNERABLE-Urteil erfordert sowohl, dass der Auth-Bypass den verwundbaren Handler erreicht hat, als auch, dass eine Basislinien-Anfrage (gleicher Endpunkt, kein Bypass) korrekt mit 401 abgewiesen wurde.

Funktionsweise

UniFi OS schaltet seinen Diensten ein nginx vor, das die Authentifizierung über eine Subanfrage erzwingt. Diese Authentifizierungsprüfung behandelt jede Anfrage, deren roher URI mit /api/auth/validate-sso/ beginnt, als öffentlich, aber nginx leitet an das Backend mit dem normalisierten URI weiter (es dekodiert %2f→/ und kürzt ../). Eine Anfrage wie:

root@kitploit:~
GET /api/auth/validate-sso/..%2f..%2f..%2fproxy/users/api/v2/ucs/update/latest_package

wird daher als öffentlich behandelt (roher Präfix), aber an den authentifizierten internen Paketaktualisierungs-Endpunkt weitergeleitet (normalisierter Pfad). Ohne pkg_name antwortet dieser Endpunkt mit query param pkg_name required – ein Beweis, dass der Bypass funktioniert und der verwundbare Handler erreichbar ist.

Der Detektor sendet außerdem eine Basislinien-Anfrage an denselben Endpunkt ohne den Bypass und fordert, dass diese 401 zurückgibt, bevor ein Host als verwundbar deklariert wird. Die Prüfung testet das verwundbare Verhalten direkt – ein VULNERABLE-Urteil bedeutet, dass der Bypass tatsächlich die Senke erreicht hat.

Bestätigung, dass das Ziel ein UniFi OS ist, bevor ein nicht-verwundbares Urteil gefällt wird

Immer wenn die Sonde nicht positiv VULNERABLE oder PATCHED bestätigt, ruft der Detektor die Stammseite ab und sucht nach dem UniFi-OS-Managementportal-Fingerabdruck (<title>UniFi OS</title>, window.UNIFI_OS_MANIFEST, id="portal-root", id="site-manager_portal-container"). Dies gilt auch für eine 401-Antwort: Ein UniFi-OS-Host, der die Authentifizierung für den Bypass erzwingt, ist INCONCLUSIVE, aber ein Nicht-UniFi-Proxy, der einfach alles mit 401 beantwortet, trägt keinen Fingerabdruck und wird als UNAFFECTED gemeldet. Also ist jedes "nicht verwundbare" Ergebnis durch den Fingerabdruck fundiert: Marker vorhanden → INCONCLUSIVE; Marker fehlen → UNAFFECTED (die CVE trifft nicht zu).

Anforderungen

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

Verwendung

root@kitploit:~
# einzelner Host (Standardport 11443)
./cve_2026_34908_check.py 192.168.1.10

# expliziter Port / URL-Formate
./cve_2026_34908_check.py host-a:11443 https://host-b

# Liste scannen, ein Ziel pro Zeile ('#'-Kommentare erlaubt), kompakte Ausgabe
./cve_2026_34908_check.py -f targets.txt --brief

# maschinenlesbare Ausgabe für Pipelines
./cve_2026_34908_check.py -f targets.txt --json > results.json

Optionen

Beispiele

Eine verwundbare Konsole (ausführlich, Standard). Die zweite Zeile enthält die Details zum Urteil; der Marker [!] und VULNERABLE werden auf einem TTY in Rot dargestellt:

root@kitploit:~
$ ./cve_2026_34908_check.py 192.168.1.10
[!] 192.168.1.10:11443: VULNERABLE
      auth bypass reached the vulnerable handler (no command executed); baseline correctly 401

Eine gepatchte Konsole (5.0.8+):

root@kitploit:~
$ ./cve_2026_34908_check.py 192.168.1.11
[+] 192.168.1.11:11443: PATCHED
      nginx rejected the normalized-path divergence (HTTP 400) — 5.0.8+ behavior

Ein bestätigter UniFi OS Host, den die Sonde nicht klassifizieren konnte → INCONCLUSIVE. Die Detailzeile unterscheidet die beiden Fälle (Auth erzwungen vs. unerwartete Antwort):

root@kitploit:~
$ ./cve_2026_34908_check.py 192.168.1.12 192.168.1.13
[?] 192.168.1.12:11443: INCONCLUSIVE
      bypass blocked / auth enforced (HTTP 401) on a confirmed UniFi OS host — not confirmed vulnerable
[?] 192.168.1.13:11443: INCONCLUSIVE
      UniFi OS detected, but probe returned an unexpected response: HTTP 302 text/html

Ein Host, der überhaupt kein UniFi OS ist → UNAFFECTED (das Advisory trifft nicht zu):

root@kitploit:~
$ ./cve_2026_34908_check.py 203.0.113.9:443
[-] 203.0.113.9:443: UNAFFECTED
      no UniFi OS web fingerprint on / (probe HTTP 404) — target is not a UniFi OS Server

Liste scannen, eine ausgerichtete Zeile pro Host (--brief). Exit-Status ist 1, wenn irgendein Host VULNERABLE ist, sonst 0 – praktisch in Skripten:

root@kitploit:~
$ ./cve_2026_34908_check.py -f targets.txt --brief; echo "exit: $?"
VULNERABLE    192.168.1.10:11443
PATCHED       192.168.1.11:11443
INCONCLUSIVE  192.168.1.12:11443
UNAFFECTED    203.0.113.9:443
ERROR         10.0.0.1:11443  timeout
exit: 1

Maschinenlesbare Ausgabe für Pipelines (--json). Jedes Ergebnis enthält das verdict sowie den zugrundeliegenden bypass.state/bypass.detail; ERROR-Ergebnisse enthalten ein error-Feld anstelle von bypass:

root@kitploit:~
$ ./cve_2026_34908_check.py 192.168.1.10 192.168.1.11 10.0.0.1 --json
[
  {
    "target": "192.168.1.10:11443",
    "bypass": {
      "state": "vulnerable",
      "detail": "auth bypass reached the vulnerable handler (no command executed); baseline correctly 401"
    },
    "verdict": "VULNERABLE"
  },
  {
    "target": "192.168.1.11:11443",
    "bypass": {
      "state": "patched",
      "detail": "nginx rejected the normalized-path divergence (HTTP 400) — 5.0.8+ behavior"
    },
    "verdict": "PATCHED"
  },
  {
    "target": "10.0.0.1:11443",
    "verdict": "ERROR",
    "error": "timeout"
  }
]

Urteile

Exit-Codes

CodeBedeutung
0Kein Ziel hat VULNERABLE zurückgegeben
1Mindestens ein Ziel ist VULNERABLE
2

Einschränkungen

  • INCONCLUSIVE ist keine Garantie für Sicherheit – es bestätigt einen UniFi-OS-Host, konnte ihn aber nicht klassifizieren (Auth auf dem Bypass erzwungen oder unerwartete Antwort). Ein Host, der stark gefiltert oder hinter einem unerwarteten Proxy steht, kann allein aus dem Netzwerk möglicherweise nicht klassifiziert werden. Falls möglich, die laufende Version bestätigen.
  • UNAFFECTED bedeutet, dass die Stammseite keinen UniFi-OS-Portal-Fingerabdruck trug (einschließlich Hosts, die 401 ohne diesen zurückgeben). Eine UniFi-OS-Konsole hinter einem Reverse-Proxy, der das Portal-HTML entfernt oder umschreibt, könnte daher falsch gemeldet werden; falls das Ziel voraussichtlich UniFi OS ist, direkt bestätigen.
  • Der Detektor meldet die Erreichbarkeit des verwundbaren Verhaltens.

Abhilfe

UniFi OS Server auf Version 5.0.8 oder höher aktualisieren. Der Fix fügt einen nginx-Vergleich von rohem vs. normalisiertem URI hinzu (schließt den Auth-Bypass) sowie eine Eingabevalidierung im Paketaktualisierungspfad (schließt die Befehlsinjektion).

Lizenz

Dieser Code wird unter einer MIT-Lizenz vertrieben.

Rechtlicher Haftungsausschluss

Die Verwendung dieses Werkzeugs zum Angriff auf Ziele ohne vorherige gegenseitige Zustimmung ist illegal. Es liegt in der Verantwortung des Endbenutzers, alle geltenden lokalen, staatlichen und bundesstaatlichen Gesetze zu befolgen. Die Entwickler übernehmen keine Haftung und sind nicht verantwortlich für Missbrauch oder Schäden, die durch dieses Programm verursacht werden.

Siehe auch

  • Ubiquiti Security Advisory Bulletin 064
  • Bishop Fox Blog: Vollständige technische Analyse
Tool herunterladen
SondenantwortUrteil
200 + Handler-FehlermarkerVULNERABLE
400 (nginx lehnt die Abweichung ab)PATCHED (5.0.8+)
401, UniFi-OS-Fingerabdruck vorhandenINCONCLUSIVE (Authentifizierung erzwungen / Bypass blockiert)
401, kein UniFi-OS-FingerabdruckUNAFFECTED (kein UniFi OS Server)
Sonstiges, kein UniFi-OS-FingerabdruckUNAFFECTED (kein UniFi OS Server)
Sonstiges, UniFi-OS-Fingerabdruck vorhandenINCONCLUSIVE (unerwartete Antwort)
FlagBeschreibung
targetsEin oder mehrere host, host:port oder https://host:port
-f, --targets-file DATEIZiele aus einer Datei einlesen (eines pro Zeile; #-Kommentare)
--briefEinzelne ausgerichtete Zeile pro Ziel – ideal zum Scannen vieler Hosts
--jsonStrukturierte JSON-Ergebnisse ausgeben
--timeout SEKTimeout pro Anfrage (Standard: 10)
--no-colorFarbige Ausgabe deaktivieren (beachtet auch NO_COLOR und Nicht-TTY)
UrteilBedeutung
VULNERABLEAuth-Bypass hat unauthentifiziert den verwundbaren Handler erreicht. Auf 5.0.8+ patchen.
PATCHEDnginx hat die normalisierte Pfadabweichung abgewiesen (5.0.8+ Verhalten).
UNAFFECTEDKein UniFi-OS-Portal-Fingerabdruck auf der Stammseite – das Ziel ist kein UniFi OS Server, daher trifft das Advisory nicht zu. Umfasst Hosts, die 401 ohne den Fingerabdruck zurückgeben (z. B. ein nicht verwandter Proxy, der alles ablehnt).
INCONCLUSIVEBestätigter UniFi-OS-Host, der nicht klassifiziert werden konnte – die Version manuell überprüfen. Die Detailzeile des Urteils gibt den Fall an: (a) Der Bypass wurde blockiert / Auth erzwungen (401), oder (b) die Sonde gab eine unerwartete Antwort.
ERRORVerbindungs-/Timeout-/TLS-Fehler.
Nutzungsfehler (falsche Argumente / nicht lesbare Zieldatei)