
このリポジトリはCVE-2023-0386の概念実証を提供します: https://nvd.nist.gov/vuln/detail/CVE-2023-0386
チームメンバー:Bǎnicǎ Dragoș-Marius と Borsos Matheas-Roland
こちらが動画です: https://www.youtube.com/watch?v=Ikux1rjIYP0
このリポジトリは、CVE-2023-0386(LinuxカーネルOverlayFSサブシステムにおけるローカル特権昇格の脆弱性)の概念実証 (PoC) エクスプロイトを含んでいます。
この脆弱性により、ローカルの非特権ユーザーが、OverlayFSのcopy-up操作中のファイルケイパビリティと所有権の不適切な処理を悪用して、rootへの特権昇格を可能にします。PoCは、巧妙に細工されたOverlayFSセットアップが、nosuidマウントからコピーされた場合でも、昇格した特権を保持する実行可能ファイルを生成できることを示しています。
OverlayFSは、複数のディレクトリツリーを単一の統合ビューに結合するユニオンファイルシステムです。主に以下で使用されています:
OverlayFSは以下で構成されます:
下層のファイルが変更されると、OverlayFSはcopy-up操作を実行します:ファイルは上層にコピーされ、そこで変更されます。
脆弱性は、copy-up中のOverlayFSによるファイルメタデータの処理方法にあります。具体的には:
CAP_SETUID)nosuidマウントオプションとの相互作用影響を受けるカーネルバージョンでは:
nosuid下層からファイルをコピーする際にケイパビリティを適切に除去できません。これにより、nosuidマウントが特権昇格を防ぐというセキュリティ前提が破られます。
CVE-2023-0386_POC/
├── exp.c # Main exploit logic
├── fuse.c # User-space filesystem helper (FUSE)
├── getshell.c # Privilege escalation payload
├── ovlcap/ # OverlayFS capability test utilities
│ ├── Makefile
│ └── ...
├── Makefile # Top-level build instructions
└── README.md
nosuidの下層をシミュレートします。gccmakelibfuse-dev (または同等)libcap-dev (または同等)git clone https://github.com/dragosbanica/CVE-2023-0386_POC.git
cd CVE-2023-0386_POC
make all
2つのターミナルを起動し、最初のターミナルで以下のように入力します
./fuse ./ovlcap/lower ./gc
2番目のターミナルで以下のように入力します
./exp