
マルチアーキテクチャ対応のLinux権限昇格ツールキット。24種類の事前ビルド済みおよび実行時コンパイル可能なエクスプロイトを搭載。カーネルバージョンを自動検出し、パッチ適用済みのエクスプロイトを除外して、root取得まで各エクスプロイトを試行します。
マルチアーキテクチャ対応の権限昇格ツールキットで、24のエクスプロイトを内蔵しています(amd64 はプリビルド済み。その他のアーキテクチャは実行時に gcc でコンパイル)。amd64、arm64、386、mips、mipsle、mips64、mips64le をサポートします。カーネルバージョンを検出し、修正済みのエクスプロイトを除外したうえで、root を取得するまで各エクスプロイトを順に試行します。
# run directly (no gcc needed on target if pre-compiled binaries are embedded)
./lpe-toolkit
# dry-run: show exploit plan without executing
./lpe-toolkit --dry-run
# skip specific exploits
./lpe-toolkit --skip "dirtyfrag,dirtypipe"
# execute a command once root is achieved and show its output
./lpe-toolkit -c "id"
# silent automation: suppress all output except the command result
./lpe-toolkit -q -c "whoami"
# verbose output (includes exploit stdout/stderr)
./lpe-toolkit -v
| フラグ | 説明 |
|---|---|
--dry-run | 利用可能/スキップされるエクスプロイトを表示 |
--just-build | すべてのエクスプロイトを解決してパスを出力し、終了(パッケージングに便利) |
--skip LIST | スキップするエクスプロイト名のカンマ区切りリスト |
-c, --command CMD | 対話型シェルを起動する代わりに、CMD を root として実行 |
-q, --quiet | ツールキットのメッセージを抑制し、root シェルの出力または unsuccessful in getting root のみ表示 |
-v, --verbose | 出力にエクスプロイトの stdout/stderr を含める(-q とは併用不可) |
注: -v と -q は併用できません。両方が指定された場合、ツールキットはエラーで終了します。
# native build (pre-compile C exploits then embed in Go binary)
make
# cross-compile for all architectures (native arch's C exploits only)
make build-all
# run directly from source (compile exploits on target at runtime)
make run-source
# clean build artifacts
make clean
必要条件: Go 1.21+、gcc、およびターゲットアーキテクチャ用のクロスコンパイラ:
aarch64-linux-gnu-gcci686-linux-gnu-gccmips-linux-gnu-gccmipsel-linux-gnu-gccmips64-linux-gnuabi64-gccmips64el-linux-gnuabi64-gcc--just-build フラグは、使用可能なすべてのエクスプロイトを解決してパスを出力します。実行時に何が利用可能かを確認するために使用してください。
各リリースのプリコンパイル済みバイナリアーカイブには、C エクスプロイトを埋め込んだ静的リンクの Go バイナリが含まれます。すべてのエクスプロイトが全アーキテクチャ向けにプリコンパイルされています。
toolkit.go: コアのエクスプロイト定義、カーネルバージョンの解析、バイナリ解決、GTFOBins sudo 悪用ハンドラ、非対話型コマンド実行用の execCommandAsRoot()、msg()/say() の出力冗長度ヘルパーmain.go: フラグ(-c、-q、-v、--skip、--dry-run、--just-build)とシグナル処理を備えた CLI エントリポイントbuild-exploits.sh: C エクスプロイト用のクロスコンパイルスクリプトexploits/: //go:embed を介して埋め込まれる C ソースファイルとプリコンパイル済みバイナリInstallFiles の SIMULATE/NONE フラグをレースさせ、root 権限での postinst 実行を誘発し、setuid-root の bash を /var/tmp/.suid_bash に配置しますparseKernelVersion の修正: カーネルバージョンの比較時に -rcN サフィックスを処理するため parseIntPrefix を追加bad_epoll.c を正しい J-jaeyoung アーキテクチャで書き直し: 2つの epoll ペア、3000以上のウェイターによる timerfd IRQ の拡大、深さ3のオラクル、共有変数上の acquire/release アトミックtry_passwd_root() を追加 — passwd から書き込み可能な /etc/shadow の fd を奪い、既知のパスワードハッシュを書き込んだ後、su - を起動します。リーク専用のメソッドにフォールバックしますsplice() による /etc/passwd の上書きを追加 → → を起動OFF_* と PIVOT* の define をカスタマイズしてください。/proc/kallsyms (kptr_restrict=0) が必要です。パッチ未適用のカーネルで実行してください — 修正(コミット a6dc643c6931、ep_clear_and_put を追加)は Ubuntu 22.04 の 6.8 HWE を含む多くのディストリビューションにバックポートされています。| # | 名前 | ターゲット | タイプ |
|---|
| 1 | Copy Fail CVE-2026-31431 | AF_ALG + splice による page-cache 書き込み | プリビルド / コンパイル |
| 2 | Dirty Frag CVE-2026-43284 | xfrm-ESP/RxRPC による page-cache 書き込み | プリビルド / コンパイル |
| 3 | Fragnesia CVE-2026-46300 | espintcp splice による page-cache 破壊 | プリビルド / コンパイル |
| 4 | DirtyDecrypt CVE-2026-31635 | rxgk による page-cache 書き込み | プリビルド / コンパイル |
| 5 | Fragnesia v2 | skb_segment GRO 結合(coalesce) | プリビルド / コンパイル |
| 6 | PinTheft | RDS zerocopy + io_uring による page-cache 上書き | プリビルド / コンパイル |
| 7 | Dirty Pipe CVE-2022-0847 | /etc/passwd の page-cache 上書き | プリビルド / コンパイル |
| 8 | CIFSwitch CVE-2026-46243 | cifs.spnego + NSS のネームスペース混同(namespace confusion) | プリビルド / コンパイル |
| 9 | PwnKit CVE-2021-4034 | pkexec の環境エスケープ | プリビルド / コンパイル |
| 10 | OverlayFS CVE-2021-3493 | user-ns によるマウントエスケープ | プリビルド / コンパイル |
| 11 | OvFS+FUSE CVE-2023-0386 | FUSE によるマウントエスケープ | プリビルド / コンパイル |
| 12 | Pack2TheRoot CVE-2026-41651 | PackageKit D-Bus レース → setuid root | プリビルド / コンパイル |
| 13 | Polkit D-Bus CVE-2021-3560 | accounts-daemon レース | プリビルド / コンパイル |
| 14 | Docker Socket | 書き込み可能な /var/run/docker.sock | プリビルド / コンパイル |
| 15 | netfilter OOB CVE-2021-22555 | ip_tables の破壊(corruption) | プリビルド / コンパイル |
| 16 | nft UAF2 CVE-2022-2586 | nftables チェーン UAF | プリビルド / コンパイル |
| 17 | pidfd race CVE-2026-46333 | ssh-keysign/shadow の FD 窃取 | プリビルド / コンパイル |
| 18 | CPU Timer Race CVE-2025-38352 | POSIX タイマーレース(PoC) | プリビルド / コンパイル |
| 19 | nft UAF CVE-2024-1086 | Notselwyn マルチファイル nftables | プリビルド / コンパイル |
| 20 | PEdit COW CVE-2026-46331 | tc-pedit による su の page-cache 上書き | プリビルド / コンパイル |
| 21 | DirtyClone CVE-2026-43503 | ESP-in-UDP TEE による passwd の page-cache 上書き | プリビルド / コンパイル |
| 22 | Bad Epoll CVE-2026-46242 | epoll close-vs-close レース UAF | プリビルド / コンパイル |
| 23 | FUSE OOB CVE-2026-31694 | FUSE readdir キャッシュ OOB → passwd | プリビルド / コンパイル |
| 24 | GTFOBins | 80以上のパスワードレス sudo 手法 | Go ハンドラ |
root::0:0:su ---corrupt-only を使用して対話型 PTY ブリッジをスキップします。execCommandAsRoot() はコマンドを su の標準入力にパイプし、信頼性の高い非対話型実行を実現します