
Meccanismo di rilevamento ad alta fedeltà per node2shell (CVE-2026-111497)
Uno strumento da riga di comando per rilevare CVE-2026-111497 nelle applicazioni HTTP Node.js.
Lo scanner invia quattro controlli di un byte per apprendere come l'endpoint gestisce JSON Brotli valido, Brotli malformato, richieste senza un content type JSON e codifiche non supportate. Successivamente trasmette in streaming una sonda Brotli da 23.068.764 byte e ripete il controllo valido.
Un target viene segnalato come vulnerabile solo quando la sonda completa raggiunge la classe di risposta valida della route, la classe di risposta malformata è distinta e il controllo finale conferma che l'endpoint è rimasto stabile. Questo corrisponde alla logica di rilevamento interna del postmodule di Assetnote e non esegue alcun comando.
Il percorso dell'URL viene preservato e il valore predefinito è /. I redirect non vengono seguiti.
Ogni endpoint testato riceve cinque richieste di un byte e una sonda da 23.068.764 byte. La sonda utilizza Expect: 100-continue, così un proxy può rifiutarne la dimensione dichiarata prima che il corpo venga caricato.
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 Singolo URL da verificare
-l, --list File contenente gli host (uno per riga)
-t, --threads Numero di thread concorrenti (predefinito: 10)
--timeout Timeout per richiesta in secondi (predefinito: 60)
-o, --output File di output per i risultati (JSON)
--all-results Salva tutti i risultati, non solo gli host vulnerabili
-k, --insecure Disabilita la verifica del certificato TLS
-H, --header Header personalizzato (può essere usato più volte)
-v, --verbose Mostra i motivi del verdetto e frammenti delle risposte
-q, --quiet Mostra solo gli host vulnerabili
--no-color Disabilita l'output colorato
--path Percorso personalizzato da testare (può essere usato più volte)
--path-file File contenente i percorsi da testare (uno per riga)
I risultati vengono stampati nel terminale. Con -o, gli host vulnerabili vengono salvati in JSON con la modalità di confronto e le evidenze di richiesta/risposta oscurate. Usa --all-results per salvare ogni verdetto.
Realizzato dall'Assetnote Security Research Team utilizzando la logica di rilevamento sviluppata per Searchlight's Exposure Platform.