
Hochpräziser Erkennungsmechanismus für node2shell (CVE-2026-111497)
Ein Kommandozeilen-Tool zum Erkennen von CVE-2026-111497 in Node.js-HTTP-Anwendungen.
Der Scanner sendet vier Ein-Byte-Steuerungen, um zu ermitteln, wie der Endpunkt gültiges Brotli-JSON, fehlerhaftes Brotli, Anfragen ohne JSON-Content-Type und nicht unterstützte Kodierungen verarbeitet. Anschließend streamt er eine 23.068.764-Byte-Brotli-Probe und wiederholt die gültige Steuerung.
Ein Ziel wird nur dann als verwundbar gemeldet, wenn die vollständige Probe die gültige Route-Response-Klasse erreicht, die Klasse der fehlerhaften Antwort davon abweicht und die abschließende Steuerung bestätigt, dass der Endpunkt stabil geblieben ist. Dies entspricht der internen Postmodul-Erkennungslogik von Assetnote und führt keinen Befehl aus.
Der URL-Pfad bleibt erhalten und ist standardmäßig /. Weiterleitungen werden nicht verfolgt.
Jeder getestete Endpunkt erhält fünf Ein-Byte-Anfragen und eine 23.068.764-Byte-Probe. Die Probe verwendet Expect: 100-continue, sodass ein Proxy ihre angekündigte Größe ablehnen kann, bevor der Body hochgeladen wird.
pip install -r requirements.txt
docker build -t node2shell-scanner .
docker run --rm node2shell-scanner -u https://example.com/api
python3 scanner.py -u https://example.com/api
python3 scanner.py -l hosts.txt -t 20 -o results.json
python3 scanner.py -u https://example.com --path /api/json
python3 scanner.py -u https://example.com -H "Authorization: Bearer token"
-u, --url Einzelne zu prüfende URL
-l, --list Datei mit Hosts (einer pro Zeile)
-t, --threads Anzahl gleichzeitiger Threads (Standard: 10)
--timeout Timeout pro Anfrage in Sekunden (Standard: 60)
-o, --output Ausgabedatei für Ergebnisse (JSON)
--all-results Alle Ergebnisse speichern, nicht nur verwundbare Hosts
-k, --insecure TLS-Zertifikatsprüfung deaktivieren
-H, --header Benutzerdefinierter Header (mehrfach verwendbar)
-v, --verbose Begründungen für das Urteil und Antwortausschnitte anzeigen
-q, --quiet Nur verwundbare Hosts ausgeben
--no-color Farbige Ausgabe deaktivieren
--path Benutzerdefinierter zu testender Pfad (mehrfach verwendbar)
--path-file Datei mit zu testenden Pfaden (einer pro Zeile)
Die Ergebnisse werden im Terminal ausgegeben. Mit -o werden verwundbare Hosts im JSON-Format mit dem Vergleichsmodus und redigierten Anfrage-/Antwortbelegen gespeichert. Verwenden Sie --all-results, um jedes Urteil zu speichern.
Entwickelt vom Assetnote Security Research Team unter Verwendung der Erkennungslogik, die für Searchlights Exposure Platform entwickelt wurde.