Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-3560-exploit — CVE-2021-3560 — accounts-daemon の D-Bus 競合状態を介した Polkit 権限昇格エクスプロイト | Kitploit
ツール/GitHubGitHub/jeanback1/cve-2021-3560-exploit
特権昇格脆弱性分析エクスプロイトペネトレーションテスト学習と教育レッドチーミング
GitHubjeanback1/cve-2021-3560-exploit

CVE-2021-3560-exploit

CVE-2021-3560 — accounts-daemon の D-Bus 競合状態を介した Polkit 権限昇格エクスプロイト

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2021-3560 — Polkit 権限昇格

CVE-2021-3560 は、Linux デスクトップ環境で使用される認可フレームワークである Polkit (旧 PolicyKit) におけるローカル権限昇格の脆弱性です。ローカルの非特権攻撃者は、accounts-daemon D-Bus インターフェースの競合状態を悪用して、特権ユーザーを作成し、そのパスワードを設定し、最終的に root アクセスを獲得できます。


動作の仕組み

背景: Polkit + accounts-daemon

accounts-daemon (org.freedesktop.Accounts) は、ユーザーアカウント (作成、削除、パスワード変更など) を管理するシステム D-Bus サービスです。以下のようなメソッドを公開しています:

メソッド動作
CreateUser新しいシステムユーザーを作成します
SetPasswordユーザーのパスワードを設定します
DeleteUserユーザーを削除します

これらの操作には認可が必要です。D-Bus 呼び出しが到着すると、Polkit は呼び出し元と accounts-daemon の間に介在します:

root@kitploit:~
Caller  →  D-Bus  →  Polkit (authorization check)  →  accounts-daemon (action)

Polkit は呼び出し元に権限があるかどうかを判断し、権限があればリクエストを accounts-daemon に転送して実行させます。

競合状態

この脆弱性は TOCTOU (Time Of Check, Time Of Use) 競合状態です。ここが重要なポイントです:

  1. D-Bus メソッド呼び出しが accounts-daemon に送信されます (例: CreateUser)。
  2. Polkit がそれを受け取り、認可チェックを実行します — 多くの場合、タイムアウトして「未認可」応答を返す polkit エージェントダイアログに依存します。しかし、バグにより、polkit のタイムアウト/エラー処理は特定のエラー状態を誤って成功として扱うか、デーモン側の処理を部分的に認可された状態のままにします。
  3. D-Bus 呼び出しが正確に適切な瞬間に強制終了された場合 — Polkit の認可判断が下された後、accounts-daemon の処理が完了する前 — ユーザー作成は適切な認証なしに実行されますが、ユーザーレコードは不完全な状態 (例: パスワードなし、ホームディレクトリなし) になります。
  4. 攻撃者はその後、同じ競合状態を使用して、新しく作成された (ただし認証されていない) ユーザーに対して SetPassword を呼び出すか、不完全な状態自体が昇格された特権を付与します。

要するに、適切なタイミングでリクエストを強制終了すれば、認証をバイパスできます。

エクスプロイトの動作

この exploit.sh スクリプトは、攻撃チェーン全体を自動化します:


使い方

root@kitploit:~
# Clone the repository
git clone https://github.com/Jeanback1/CVE-2021-3560.git
cd CVE-2021-3560

# Make the exploit executable
chmod +x exploit.sh

# Run it
./exploit.sh

エクスプロイトが完了すると、root シェルが得られます:

root@kitploit:~
whoami
# root

出力例

エクスプロイトの実行


影響を受けるバージョン

コンポーネント影響を受けるバージョン
polkit≤ 0.119 (パッチ未適用)
accounts-daemon (accountsservice)影響を受ける polkit を使用するすべてのバージョン

この脆弱性は polkit 0.120 以降でパッチされました。

パッチ適用済みディストリビューション (一部抜粋):

  • Ubuntu 20.04+ (2021年6月以降のセキュリティ更新を含む)
  • Debian 11+ (セキュリティ更新を含む)
  • RHEL 8+ / CentOS 8+ (エラータ含む)
  • Fedora 34+

免責事項

このリポジトリは、教育および許可されたセキュリティ研究専用です。所有していない、またはテストする明示的な許可がないシステムでこのエクスプロイトを使用しないでください。作成者は誤用に対する一切の責任を負いません。

ツールをダウンロード
ステップ動作
1. 時間較正ダミーの CreateUser("nobody") 呼び出しを使用して D-Bus ラウンドトリップにかかる時間を測定し、「強制終了ウィンドウ」を計算します
2. ユーザー作成選択したユーザー名に対する CreateUser 呼び出しを送信し、バックグラウンドで開始し、計算されたウィンドウの間スリープしてから強制終了します — 競合状態を悪用して未認可のユーザーを作成します
3. パスワード設定ユーザーが (不完全な状態で) 存在すると、同じ競合状態の手法で SetPassword 呼び出しを送信し、既知のパスワードを割り当てます
4. 権限昇格su を使用して新しいユーザーに切り替え、sudo を実行し (バイパスされた認可経路でユーザーが作成されたため機能します)、/bin/bash を SUID root で /var/tmp/bash にコピーし、root シェルを起動します