最近のニュースはそれを壊しました 新しい脆弱性を特定 (すでにCVE-2021-4204にリストされています) eBPFサブシステムで (変更のために)...
そして、eBPFサブシステムがカーネルの大きなセキュリティ問題であることに変わりはありません。2021年のすべてで月にXNUMXつの脆弱性が簡単に明らかになり、そのうちのいくつかについてブログで説明しているからです。
現在の問題の詳細については、 検出された脆弱性により、ドライバーはLinuxカーネル内で実行できます 特別なJIT仮想マシンで、これにより、特権のないローカルユーザーが特権の昇格を取得し、カーネルレベルでコードを実行できるようになります。
問題の説明の中で、彼らは次のように述べています この脆弱性は、実行のために送信されたeBPFプログラムの誤ったスキャンによるものです。、eBPFサブシステムは補助機能を提供するため、その正確性は特別なベリファイアによって検証されます。
この脆弱性により、ローカルの攻撃者は
影響を受けるLinuxカーネルのインストール。 攻撃者は最初に
ターゲットシステムで低特権コードを実行する機能
この脆弱性を悪用します。eBPFプログラムの処理には特定の欠陥があります。 質問 ユーザー提供のeBPFプログラムの適切な検証の欠如から生じる それらを実行する前に。
それに加えて、 一部の関数では、PTR_TO_MEM値を引数として渡す必要があります また、検証者は、潜在的なバッファオーバーフローの問題を回避するために、引数に関連付けられたメモリのサイズを認識している必要があります。
機能のために bpf_ringbuf_submitおよびbpf_ringbuf_discard, 転送されたメモリサイズに関するデータはベリファイアに報告されません (これが問題の始まりです)、攻撃者はこれを利用して、特別に細工されたeBPFコードを実行するときにバッファ制限外のメモリ領域を上書きできるようにします。
攻撃者はこの脆弱性を悪用して 特権を昇格し、カーネルコンテキストでコードを実行します。 ほとんどのディストリビューションでは、非特権bpfがデフォルトで無効になっていることに注意してください。
ユーザーが攻撃を実行するために、 ユーザーはBPFプログラムをロードできる必要があり、最近の多くのLinuxディストリビューションはそれをブロックしています デフォルトでは(バージョン5.16以降、カーネル自体でeBPFへの非特権アクセスがデフォルトで禁止されています)。
たとえば、脆弱性が言及されています のデフォルト構成で悪用される可能性があります まだかなり使用されており、とりわけ非常に人気のあるディストリビューションです。 Ubuntu 20.04 LTS、 ただし、Ubuntu 22.04-dev、Debian 11、openSUSE 15.3、RHEL 8.5、SUSE 15-SP4、Fedora 33などの環境では、管理者がパラメーターを設定した場合にのみ表示されます。 kernel.unprivileged_bpf_disabledを0に設定します。
現在、この脆弱性をブロックするための回避策として、特権のないユーザーが端末でコマンドを実行することにより、BPFプログラムを実行できないようにすることができると述べられています。
sysctl -w kernel.unprivileged_bpf_disabled=1
最後に、それは言及されるべきです この問題はLinuxカーネル5.8以降に発生しており、パッチが適用されていないままです (バージョン5.16を含む)そしてそれが理由です エクスプロイトコードは7日間遅延します そして、それは12:00 UTC、つまり18年2022月XNUMX日に公開されます。
それと共に これは、修正パッチが利用可能になるのに十分な時間を与えることを目的としています。 これらのそれぞれの公式チャネル内のさまざまなLinuxディストリビューションのユーザーのうち、開発者とユーザーの両方が上記の脆弱性を修正できます。
いくつかの主要なディストリビューションの問題を排除して更新の形成のステータスを知ることに興味がある人は、これらのページから追跡できることを知っておく必要があります。 Debianの, RHEL, SUSE, フェドーラ, Ubuntu, アーチ。
もしあなたが それについてもっと知りたい メモについては、元のステートメントを参照できます 次のリンクで。