パスワードを忘れた? アカウント作成
15554040 submission
バグ

Polkit に 12 年前の最初のバージョンから存在した脆弱性

タレコミ by headless
headless 曰く、
主な Linux ディストリビューションに標準でインストールされるツールキット Polkit (旧名: PolicyKit) の最初のバージョン (12 年前) から存在したメモリ破損の脆弱性 (CVE-2021-4034) について、発見した Qualys が解説している (Qualys Security Blog の記事Red Hat のアドバイザリーNeowin の記事Ars Technica の記事)。

Qualys が Pwnkit と名付けた脆弱性は非特権ユーザーがrootの権限でコマンドを実行できるようにする Polkit の コマンドラインツール pkexec に存在する。pkexec の main() 関数ではコマンドライン引数の数 (argc) を適切に処理せず、常に 1 以上として扱うため、引数リスト (argv) が空の状態でも境界外のメモリを引数 (argv[1]) として読み書きしてしまう。

境界外の直近にあるのは 1 つ目の環境変数 (envp[0]) であり、pkexec は読み取った値を実行ファイルの名前として PATH 環境変数で指定されたディレクトリを探し、一致する実行ファイルが見つかったらパスを付加して envp[0] を上書きする。これにより、通常は main() 関数実行前に除去される「安全でない」変数を pkexec の環境に再導入することが可能であり、悪用することでローカルでの権限昇格が可能になる。

Polkit では argc が 1 未満の場合に処理を終了する修正を行っており、修正済みの Polkit パッケージが入手可能になり次第更新することが推奨される。
この議論は、 ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

アレゲは一日にしてならず -- アレゲ見習い

読み込み中...