Ubuntu Linux の eBPF 脆弱性に対する PoC エクスプロイトが公開

Linux eBPF bug gets root privileges on Ubuntu – Exploit released

2021/07/30 BleepingComputer — Linux カーネルの eBPF (Extended Berkeley Packet Filter) に深刻度の高い脆弱性があり、Ubuntu マシン上において攻撃者に高い権限を与えてしまう可能性があるため、セキュリティ研究者が PoC エクスプロイト・コードを公開した。この、5月に公開された脆弱性 CVE-2021-3490 は、特権昇格を引き起こすものであるが、それを悪用するには、対象マシンのローカル・アクセスが必要となる。なお、eBPF とは、特定のイベントや機能 (システム・コールやネットワーク・イベントなど) をトリガーとして、OS のカーネル内でユーザー・プログラムをサンドボックス化して実行する技術である。

このバグを報告したのは、Trend Micro Zero Day Initiative の RedRocket CTF チームに所属する Manfred Paul である。このチームにより、CVE-2021-3490 はカーネル内で、境界外 read/write を生じる可能性が発見された。この問題は、ユーザーが提供したプログラムが、実行される前に適切な検証プロセスを経ていないという事実に起因している。この脆弱性が巧妙に悪用されると、ローカルの攻撃者がカーネルの権限を取得し、マシン上で任意のコードを実行する可能性が生まれる。

今週のブログでは、エクスプロイトの開発者である Valentina Palmiotti が、脆弱性 CVE-2021-3490 技術的詳細と、Ubuntu short-term releases 20.10 (Groovy Gorilla) と 21.04 (Hirsute Hippo) での悪用について解説している。Palmiotti は、インシデントの検知/対応のためのグラフィカルなプラットフォームを提供する、Grapl の主任セキュリティ研究者である。彼女の研究では、この脆弱性を悪用した特権昇格および、利用可能なカーネル・スレッド・ロックによるサービス拒否 (DoS) の、詳細が解析されている。また、CVE-2021-3490 に対する PoC エクスプロイト・コードを作成し、GitHub で公開している。

今年の初めに Microsoft は、eBPF 技術を Windows 上で利用するための、ebpf-for-windows という新しい OSS プロジェクトを発表した。これは、既存の eBPF プロジェクトに互換性レイヤーを追加し、Windows 10 や Windows Server のサブモジュールとして機能させるものだ。eBPF の Windows への移植は、まだ初期のプロジェクトであり、今後も多くの開発が必要である。Palmiotti による CVE-2021-3490 に関する研究は、Linux の実装に限られている。彼女は BleepingComputer に対して、今の PoC エクスプロイトは Windows では動作しないだろうと述べている。この PoC は、Groovy Gorilla kernels 5.8.0-25.26/5.8.0-52.58 と、Hirsute Hippo kernel version 5.11.0-16.17 向けにデザインされている、また、これらの Ubuntu バーッジョンに関してはパッチが提供されている。

2020年5月頃からだったと思いますが、Windwos の脆弱性に付けられた CVE が、すでに Linux の脆弱性に割り振られていた CVE と、重複するようになりました。本文にもあるように、Windows のサブモジュールとして、Linux の eBPF などが、その頃から使われるようになったのでしょう。それまでは、同じ CVE が Linux と Windows で見つかることなど、まったくあり得ないことだったので、とても驚いた覚えがあります。まぁ、このような実績のあるテクノロジーが、多様なプラットフォームで活用されることは、とても素晴らしい状況ですが、気を付けないと脆弱性に躓くかもしれませんね。