
CUPS 2.4.16 におけるローカル管理者トークン漏洩および file:// 任意ファイル書き込みを悪用したローカル権限昇格 (CVE-2026-34990)
CUPS 2.4.16 にはローカル権限昇格の脆弱性が含まれています (GHSA-c54j-2vqw-wpwp としても追跡されています)。
誰でも書き込み可能なソケット — /run/cups/cups.sock が誰でも書き込み可能であり、
任意のローカルユーザーが CUPS デーモン(root として実行中)に
IPP リクエストを送信できます。
ローカルトークンの漏洩 — CUPS-Create-Local-Printer を悪用し、
device-uri を攻撃者が制御する IPP サーバーに向けることで、
Local 認証トークンを漏洩させることができます。
任意ファイル書き込み — 漏洩したトークンを使用して、攻撃者は
device-uri=file:///etc/sudoers.d/<user> を指定したプリンターを作成でき、
CUPS(root として)がディスク上の任意のパスに任意のコンテンツを
書き込むことができます。
# 基本的な使用方法
python3 cups_pwn.py --user lowpriv
# カスタム sudoers パス
python3 cups_pwn.py --user lowpriv --sudoers /etc/sudoers.d/custom
# 成功後
sudo -i
🧠 仕組み
text
┌─────────────────────────────────────────────────────────────────┐
│ 1. 127.0.0.1:9189 で偽の IPP サーバーを起動 │
│ 2. device-uri=ipp://... を指定して CUPS-Create-Local-Printer を送信 │
│ 3. CUPS が偽サーバーに接続 → Local トークンを送信 │
│ 4. トークンを抽出 │
│ 5. device-uri=file:///etc/sudoers.d/... を指定してプリンターを作成 │
│ 6. "user ALL=(ALL) NOPASSWD: ALL" を含む gzip ペイロードを印刷 │
│ 7. CUPS が root としてペイロードを書き込む │
│ 8. sudo -n id → root │
└─────────────────────────────────────────────────────────────────┘
🛡️ 免責事項
このツールは、許可されたセキュリティテストおよび教育目的
のみで提供されています。所有していないシステム、またはテストの
明示的な許可を得ていないシステムに対して使用しないでください。
作者は、このツールによるいかなる誤用や損害についても責任を負いません。
📚 参考資料
GHSA-c54j-2vqw-wpwp
CVE-2026-34990
CUPS Security Advisories
📄 ライセンス
MIT — LICENSE ファイルを参照してください。
text
### Ficheiro 3: `LICENSE`
```bash
nano LICENSE