
Proof-of-Concept-Exploit für UniFi OS CVE-2026-34910 Authentifizierungs-Bypass, der Befehlsinjizierung/RCE ermöglicht, sowie CVE-2026-34909 Pfad-Traversal zum Lesen beliebiger Dateien.
Proof of Concept für autorisierte Tests gegen zwei Pfade, die wie folgt identifiziert wurden:
CVE-2026-34910: Auth-Bypass, der zu Command Injection und Remote Code Execution über den Handler für Paketupdates führen kann.CVE-2026-34909: Path Traversal, der zu beliebigem Lesen von Dateien über den Alias app-assets führen kann.Dieses Skript dient der Sicherheitsvalidierung auf Geräten und Netzwerken, die Ihnen gehören oder für die Sie ausdrücklich autorisiert sind, Tests durchzuführen. Verwenden Sie es nicht gegen Systeme Dritter.
1.0.0CVSS-Werte und der Schwachstellenstatus müssen vor der Verwendung in Berichten gegen die Advisorys des Herstellers und die relevanten Firmware-Versionen verifiziert werden.
Dieses Skript kann Befehle an das Ziel senden und Dateiinhalte vom Ziel lesen. Die Auswirkungen können Systemänderungen, die Offenlegung sensibler Informationen, Dienstunterbrechungen oder Datenbeschädigung umfassen.
Vor der Durchführung von Tests:
Das Skript verwendet ausschließlich die Python-Standardbibliothek, daher sind keine zusätzlichen Paketinstallationen erforderlich.
Klonen Sie das Repository oder kopieren Sie das Skript auf den Testrechner und wechseln Sie dann in das Projektverzeichnis:
git clone <URL-REPOSITORI>
cd CVE-2026-34910
Eine pip install ist nicht erforderlich. Stellen Sie sicher, dass der verwendete Interpreter geeignet ist:
python3 --version
Allgemeines Format:
python3 CVE-2026-34910.py <target> [command] [options]
target muss eine URL mit dem Schema http:// oder https:// sein, beispielsweise https://192.0.2.10:11443.
Führt eine Probe aus, ohne zusätzliche Befehle zu senden:
python3 CVE-2026-34910.py https://192.0.2.10:11443 --check
Das zweite Positionsargument wird als Befehl behandelt, der an das Ziel gesendet wird. Verwenden Sie nur genehmigte, nicht-destruktive Befehle:
python3 CVE-2026-34910.py https://192.0.2.10:11443 "id"
Die Option --proof fordert das Ziel auf, eine Proof-Datei unter /tmp/PWNED_34910 zu erstellen:
python3 CVE-2026-34910.py https://192.0.2.10:11443 --proof
Verifizieren und entfernen Sie die Proof-Datei über die genehmigten Zugriffsverfahren. Betrachten Sie eine HTTP-Antwort 200 nicht als alleinigen Beweis dafür, dass der Befehl erfolgreich war.
python3 CVE-2026-34910.py https://192.0.2.10:11443 --read /etc/hostname
Das Skript gibt höchstens 800 Zeichen der Dateiantwort aus.
Fügen Sie --verbose oder -v hinzu, um Details der Anfragen und Antworten anzuzeigen:
python3 CVE-2026-34910.py https://192.0.2.10:11443 --check --verbose
Beachten Sie, dass die ausführliche Ausgabe sensible URLs, Parameter oder Antwortdaten enthalten kann.
| Option | Beschreibung |
|---|---|
target | Ziel-URL mit HTTP- oder HTTPS-Schema |
command | Befehl, der über den CVE-2026-34910-Pfad getestet wird |
--check | Führt nur die Auth-Bypass-Probe aus |
--proof | Fordert die Erstellung einer Proof-Datei auf dem Ziel an |
--read PATH | Testet das Lesen von Dateien über den Path Traversal |
-v, --verbose | Zeigt zusätzliche Debug-Informationen an |
-h, --help | Zeigt die Nutzungshilfe an |
Verwenden Sie pro Ausführung nur einen Betriebsmodus. Das Programm gibt den Exit-Code 0 zurück, wenn die Operation als erfolgreich gilt, 1, wenn das Ziel nicht als verwundbar eingestuft wird oder die Argumente unvollständig sind, und 2, wenn ein unerwarteter Fehler auftritt. Eine Benutzerunterbrechung gibt 130 zurück.
--check prüft die Antwort auf Marker, die anzeigen, dass der Handler erreicht wurde.pkg_name und sendet ihn an den Endpoint für Paketupdates.--read bildet einen Path Traversal zum Alias app-assets und zeigt die Antwort begrenzt an.Die Implementierung befindet sich vollständig in CVE-2026-34910.py.
200 im RCE-Modus zeigt an, dass die Anfrage vom Handler empfangen wurde, ist jedoch keine Garantie dafür, dass der Befehl wie erwartet abgeschlossen wurde.Für Geräte, die sich im Testumfang befinden:
Ein Testbericht sollte Folgendes festhalten:
Für verantwortungsvolle Schwachstellenmeldungen nutzen Sie die offiziellen Sicherheitskanäle des Herstellers und koordinieren Sie die Offenlegung gemäß den geltenden Richtlinien.
Für dieses Projekt wurde noch keine Lizenz festgelegt. Fügen Sie eine Lizenzdatei hinzu, bevor Sie diesen Code verteilen oder in anderen Projekten verwenden.
Gagaltotal666 - GhostGTR666
Zugehöriges Repository: github.com/gagaltotal