Pack2TheRoot (CVE-2026-41651): Linux を危険にさらす PackageKit の脆弱性

キーポイント:
  • この障害は、D-Busトランザクション管理内の競合状態(TOCTOU)が原因で、polkit認証がバイパスされることに起因します。
  • これは、Ubuntu、Debian、Fedora、Rocky Linuxといった人気のあるディストリビューションのデフォルトインストールに直接影響を与えます。
  • 攻撃者は、スケジューラが操作を開始する前に2回目のリクエストを送信することで、セキュアなトランザクションのフラグを上書きすることができる。
  • この脆弱性はPackageKit 1.3.5で修正されており、polkitでカスタムルールを作成することで一時的な緩和策が講じられています。

Pack2TheRoot

数日前 新たな重大な脆弱性に関する情報が公開されました。 Linux環境に影響を与えるもの 「Pack2TheRoot」。CVE-2026-41651としてカタログ化されています。この不具合はPackageKit(複数のディストリビューション間でパッケージ管理を統一するためのD-Bus抽象化レイヤーとして機能するツール)に影響を与えます。

判決は これにより、権限を持たないローカルユーザーでも、パッケージを任意にインストールまたは削除できるようになります。 この脆弱性を悪用することで、攻撃者は侵害されたシステムへの完全なルートアクセス権を取得できます。この問題は12年以上前(2014年)にリリースされたバージョン1.0.2から存在しており、Ubuntu、Debian、Rocky Linux、Fedoraなどの人気ディストリビューションのデフォルト設定に影響を与えるため、その影響は甚大です。

Pack2TheRoot: PackageKitの脆弱性によりLinux上で管理者権限が付与される

El Pack2TheRootの発見は調査の結果であった。 ドイツテレコムのレッドチームが率いる 彼らはクロード・オプスの人工知能モデルを使用した。 地域における特権拡大の要因分析を導くため。

Lo研究者たちは当初、pkcon installコマンドはパスワードを必要とせずに実行できることを発見した。特定の Fedora 構成において、基盤となる認証に疑念が生じました。脆弱性を確認し、責任を持って PackageKit のメンテナーに報告した後、 動作するエクスプロイトが開発されました。 ただし、詳細な公開は、ユーザーと管理者が必要なアップデートを適用できるように、戦略的に延期されている。

攻撃の仕組み

の根源は 脆弱性は職業上の状況にある (TOCTOUタイプ:チェック時刻から使用時刻まで) 中で バックグラウンドプロセストランザクション管理 PackageKitの(デーモン)ルートユーザーとして動作するPackageKitは、認証をpolkitシステムに委任します。クライアントが、例えばInstallFilesメソッドを使用してパッケージのインストールを要求すると、トランザクションの動作を規定する一連のフラグを送信します。

SIMULATEやONLY_DOWNLOADなどの特定のフラグを指定すると、PackageKitはpolkitの認証をスキップします。 なぜなら、それらは理論上、システムの状態を変更しない安全な操作を表しているからである。 トランザクション ハンドラが上書きするため、エラーが発生します。 これらの指標は、トランザクションが既に承認されているか、実行中であるかを確認することなく、新しい呼び出しごとに無条件にキャッシュされます。

pack2theroot-poc2

Un 攻撃者は「安全な」指標を使用してトランザクションを開始できます。 (これにより、polkitの認証を回避できる) そして、数ミリ秒後に2回目のD-Busリクエストを送信する。 同じトランザクションに対して、今回は実際のインストールを指示する悪意のあるフラグが付けられています。GLibのイベントループ優先度アーキテクチャ(アイドルコールバックよりも先にD-Busメッセージが処理される)のため、2回目のリクエストはスケジューラが操作を開始する直前にパラメータを上書きします。

その結果、以前に「安全」として承認された取引が、置換されたパラメータを使用して実行されます。管理者権限でパッケージをインストールします。

解決策と緩和策

注意すべきことは、 この脆弱性はPackageKitバージョン1.3.5で修正されました。そのため、開発者はシステム管理者に対し、systemctl status packagekitなどのコマンドを使用してサービスの状態を確認したり、pkmonでアクティビティを監視したりして、システムに脆弱性がないか確認するよう強く推奨しています。

ラス Debian、Ubuntu、Fedoraなどの主要なディストリビューションは、既にパッケージの配布を開始している。 アップデートは公式チャンネルを通じて公開されます。パッチがすぐに利用できないシステムについては、研究者らは回避策として、カスタムのpolkitルールを導入することを提案しています。

これ このルールは、PackageKitのインストール操作を即座に、かつ警告なしに拒否します。 root以外のユーザーの場合、これにより競合状態ウィンドウが開くのを防ぎます。このエクスプロイトは高速かつ静かに実行されますが、システムログに明確な痕跡を残すことに注意が必要です。エクスプロイトが成功すると、PackageKitデーモンはアサーション失敗(assertion failed: (!transaction->priv->emitted_finished))によりクラッシュします。systemdはサービスを再起動してサービス拒否攻撃を防ぎますが、journalctlにこのメッセージが存在することは、システムが侵害されたことを示す強力な指標となります。

最後に、これについてもっと詳しく知りたい場合は、 詳細は次のリンクをご覧ください。


優先ソースとして追加