Linux Polkit の深刻な脆弱性 CVE-2021-4034:PoC エクスプロイトが登場?

Linux system service bug gives root on all major distros, exploit released

2022/01/25 BleepingComputer — Polkit の pkexec コンポーネントには、脆弱性 CVE-2021-4034 が存在し、また、主要な Linux ディストリビューションのデフォルト設定に含まれているという。CVE-2021-4034 は PwnKit と名付けられ、その起源は 12年以上前の pkexec の最初のコミットまで追跡されており、すべての Polkit バージョンが影響を受けることになる。

pkexec は、特権プロセスと非特権プロセスの間のやりとりを取り持つ、オープンソースの Polkit アプリケーション・フレームワークの一部であり、権限を持つユーザーが別のユーザーとしてコマンドを実行することを可能にし、sudo の代替手段として機能する。

簡単に悪用できる PoC が間もなく登場

Qualys の研究者たちは、Ubuntu/Debian/Fedora/CentOS などのデフォルト・インストール環境において、ローカルの攻撃者が pkexec プログラムを使用して、root 権限へと昇格できることを発見した。彼らは、他の Linux OS においても、PwnKit の悪用の可能性が高いと警告している。

Qualys社 の Director of Vulnerability and Threat Research である Bharat Jogi は、「PwnKit はメモリ破壊の脆弱性であり、デフォルトの polkit の設定を使用している脆弱なシステム上で、任意の非特権ユーザーが完全な root 権限を得ることができる」と説明している。この問題について研究者たちは、2009年5月の pkexec inn の最初のバージョン以来、見えないところに隠れていたと指摘している。

研究者たちによると、この欠陥を悪用することは極めて簡単であり、数日後には PoC エクスプロイト・コードが公開される予定だという。なお、Qualys Research Team は PwnKit の PoC は公開しないようだ。

Qualys が PwnKit の技術的詳細を公開してから3時間も経たないうちに、すでにエクスプロイトが公開されている。BleepingComputer は、利用可能なエクスプロイトをコンパイルしてテストし、すべての試行でシステムの root 権限が得られたことから、その信頼性は証明されている。

CERT/CC の脆弱性アナリストである Will Dormann は、このエクスプロイトについて、シンプルで普遍的なものであると述べている。さらに研究者たちは、ARM64 システムでテストを行い、そのアーキテクチャでも動作することを示した。

Qualys は 2021年11月18日に、このセキュリティ問題を報告し、PwnKit の背後にある技術的な詳細を公開する前に、パッチが利用可能になるのを待っていた。同社は、Polkit の作者が数時間前に GitLab で公開したパッチを、優先的に適用することを強く推奨している。Linux ディストリビューターたちは、Qualys が公開したパッチに対して、数週間前からアクセスできるようになっており、更新された pkexec パッケージをリリースが、今日から始まる予定だという。

Ubuntu は、Ver 14.04/16.04 の ESM (extended security maintenance)、および、最近 Ver 18.04/20.04/21.04 において、この脆弱性に対処するための PolicyKit のアップデートをプッシュしている。ユーザーは、標準のシステム・アップデートを実行した後に、コンピュータを再起動するだけで、この変更が有効になる。

Red Hatは、サポート・アーキテクチャー/拡張ライフサイクル・サポート/TUS/AUS においてついて、Workstation/Enterprise 製品用の polkit セキュリティ・アップデートを提供している。

まだパッチが公開されていないオペレーティング・システムにおいて、一時的な緩和策を実施するには、以下のコマンドにより pkexec から setuid ビットを取り除く。

chmod 0755 /usr/bin/pkexec

PwnKit が悪用された形跡を探したい場合はログにおいて、 “The value for the SHELL variable was not found the /etc/shells file” や “The value for environment variable […] contains suspicious content” といった項目の有無を確認できる。しかし、Qualys は、痕跡を残さずに PwnKit の悪用が可能だと指摘している。

昨年に GitHub Security Lab の研究者である Kevin Backhouse は、Polkit に影響を与える別の特権昇格の脆弱性を発見した。このバグは、pkexec コンポーネントの Ver 0.113 以降において7年間も存在しており、RHEL 8/Fedora 21 以降/Ubuntu 20.04/Debian bullseye などの、一般的な Linux ディストリビューションに影響を与えていた。

Linux の Polkit ですが、ArchLinux の説明によると、「polkit は非特権プロセスが特権プロセスと通信できるようにするポリシーを定義および操作するためのアプリケーションレベルのツールキットです: 特権操作へのアクセス許可を非特権アプリケーションに与えるかの判断を集中的に行うフレームワークになります」とのことです。文中にもあるように、特権プロセスと非特権プロセスの通信を含めて、システム全体の権限をコントロールする役割を持つようです。コア部分だけに、心配です。

%d bloggers like this: