CVE-2017-16995-Ubuntuローカル特権エスカレーションの脆弱性が再現されました

環境設定

システムはUbuntu16.04-desktop-amd64.isoインストール環境を選択し、インストールプロセスで更新パッケージをインストールする必要はありません。

脆弱性の分析と悪用

この環境では、次のように、コンパイルされたプログラム(4.4.0-21-generic)を直接使用することはできません。

次に、Ubuntu 14.04と16.04.4の両方を試しましたが、それでも失敗しました。すべてのレポートエラー。以下は14の環境エラー情報です。

ヘッダーファイルがない場合は、16.04.4で試してください。

明らかに、バージョン4.13は4.4.0よりも高いため、抜け穴はありません。おそらく、16.04の比較的新しいイメージが原因である可能性があります。

16.04.1および16.04.1では試していません。ですから、個人的にはインターネット上の記事の範囲は少し広いと思います

テストにはまだ16.04を使用しています。脆弱性の詳細を確認してください。脆弱性番号は次のとおりです:CVE-2017-16995

seebugに詳細な手順があります:https://www.seebug.org/vuldb/ssvid-97183

ここで脆弱性の詳細を確認すると、作成者が特定の詳細を分析したことがわかります。LinuxカーネルでのeBPF bpf(2)システム呼び出しのため、ユーザーが悪意のあるBPFプログラムを提供すると、eBPF検証モジュールが計算エラーを生成し、任意のメモリの読み取りと書き込みが発生します。問題。特権のないユーザーは、この脆弱性を使用して特権のエスカレーションを取得できます。コードは分析しません。作成者は、gccのコンパイル中にメモリアドレスの変更をデバッグするいくつかの変数R0 / R1 / R10を常に取得しようとしているため、最終的なコードは次のようになります。正解:crasher_badtrunc.c

このクラッシュコードをubuntuでコンパイルして実行し、変更を加えた後にexpを実行します。

gcc -ocrasher_badtrunc crasher_badtrunc.c -Wall && ./crasher_badtrunc

特権のエスカレーションが成功し、ルート特権が取得されていることがわかります。使用プロセスの観点からは、使用条件が比較的小さいため、リスクの高い脆弱性に属しているはずです。

バグ修正

現在、明確なパッチアップグレード計画はありません。リスクを評価した後、カーネルパラメータを変更して、通常のユーザーがbpf(2)システム呼び出しを使用できないようにすることをお勧めします。

echo 1 >/proc/sys/kernel/unprivileged_bpf_disabled

Recommended Posts

CVE-2017-16995-Ubuntuローカル特権エスカレーションの脆弱性が再現されました
CVE-2017-16995-Ubuntuローカル特権エスカレーションの脆弱性が再現されました
Linux(ubuntu 12.04)
UbuntuLinux研究ノート