
このリポジトリには、nftables サブシステムで最近発見した脆弱性のエクスプロイトが含まれています。この脆弱性は CVE-2023-0179 として割り当てられ、Linux のバージョン 5.5 から 6.2-rc3 のすべてに影響します(エクスプロイトは 6.1.6 でテスト済みです)。
脆弱性の詳細とライトアップは oss-security にあります。
make needle コマンドを実行するだけで、対応する実行ファイルが生成されます。
ビルドを成功させるには libmnl と libnftnl が必要です:
sudo apt-get install libmnl-dev libnftnl-dev
このエクスプロイトは、非特権ユーザーおよびネットワーク名前空間に入り、rule_add_payload 関数を介して nft_payload 式を追加します。この式は評価されると、スタックバッファオーバーフローを引き起こし、レジスタを上書きします。
その内容は、以下の nft コマンドで取得されます:
nft list map netdev mytable myset12
出力には、カーネルデータ構造に関連する複数のシャッフルされたアドレスが漏洩します。その中には、カーネル命令アドレスと regs ポインタが含まれます。
このエクスプロイトは、modprobe_path 変数を悪用して、UID 0 の新しいユーザーアカウント needle:needle を作成します。
ルート権限をお楽しみください。