Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/ishankaru/cve-2026-23111-nftables-lab
特権昇格脆弱性分析構成監査学習と教育厳選リソースコンテナエスケープラボと実践
GitHubishankaru/cve-2026-23111-nftables-lab

CVE-2026-23111-nftables-lab

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-23111(Linux nf_tablesの解放後使用によるローカル権限昇格)に対する暴露チェッカーと安全な使い捨てVMラボ。防御的:検出、緩和、マルチディストリビューションラボ。エクスプロイトなし。

リポジトリを見る
293ヶ月前未レビュー

CVE-2026-23111 nf_tables LPE: 露出チェックと安全なラボ

防御ツール群と、CVE-2026-23111(Linuxカーネルにおける nf_tables の Use-After-Free によるローカル権限昇格脆弱性。nft_map_catchall_activate() における要素アクティビティチェックの反転、つまり "off by !" バグ)のための再現可能な仮想マシンラボです。特権のないローカルユーザーが、非特権ユーザーネームスペースを通じて root に昇格し、コンテナから脱出できます。

このリポジトリにはエクスプロイトは含まれていません。読み取り専用の露出チェッカー、真に非特権のユーザーを作成するスクリプト、そして安全にバグに到達して公開研究を学ぶためのVM定義が含まれています。完全なルートチェーンは、以下にリンクされた開示情報にあり、ここではありません。

完全な解説: https://techearl.com/cve-2026-23111-nftables-lpe

Files

  • check-exposure.sh — 読み取り専用の検出器:カーネルバージョンと修正ビルドの比較、nf_tables の存在、非特権ユーザーネームスペースの前提条件、カーネルログのクラッシュシグネチャ。
  • setup-unprivileged-user.sh — sudo 権限のない labuser を作成し、非特権であることを証明します。LPEテストの要点は、すでに root になれないユーザーから開始することです。
  • Vagrantfile — 使い捨ての Debian 12 と AlmaLinux 10 VM(Multipass が起動できないディストリビューション)。

Why a VM and not a container

コンテナはホストカーネルを共有します。コンテナ内でカーネルエクスプロイトを実行すると、実際のホストカーネルに対して実行されるため、「テスト」が実際のマシンを危険にさらす可能性があります。独自のカーネルを持つ使い捨てVMを使用してください。

Distros and launchers

Multipass は Ubuntu のみを起動するため、その他は Vagrant を使用しています。

Pinning a vulnerable kernel (per distro)

各ディストリビューションは、クラウドVM上でネットワークが動作する真の修正前カーネルをブートするために、異なる方法を必要としました:

  • Ubuntu (クラウド): linux-generic ではなく古い linux-aws を使用してください。汎用カーネルには AWS ENA NIC ドライバがなく、Nitro インスタンスで SSH が失われます。sudo apt install -y linux-image-6.8.0-1028-aws(修正版 6.8.0-1051 より前)、GRUB でデフォルトに設定し、再起動します。ローカルの仮想化では汎用カーネルで問題ありません。
  • Debian: メインリポジトリには現在の(パッチ適用済み)カーネルのみが含まれています。修正前のスナップショットミラーを追加し、cloud カーネル(ENA を保持)をインストールします: deb [check-valid-until=no trusted=yes] https://snapshot.debian.org/archive/debian/20251201T000000Z/ bookworm main、次に apt install -y linux-image-6.1.0-39-cloud-amd64=6.1.148-1(修正版 6.1.164-1、DSA-6163-1 より前)。
  • AlmaLinux/Rocky: 脆弱な el10_1 カーネルは 10.1 vault にあります。dnf を https://vault.almalinux.org/10.1/BaseOS/x86_64/os/ に向け、dnf install kernel-6.12.0-124.38.1.el10_1 を実行し、次に を実行します。

Run it (any VM)

root@kitploit:~
# 1. Create a real unprivileged user and prove it cannot sudo.
#    (useradd, not Debian's adduser, so it works on RHEL too.)
sudo bash setup-unprivileged-user.sh labuser

# 2. Exposure verdict.
sudo ./check-exposure.sh

# 3. As labuser, the precondition, then the public nft trigger inside a netns.
sudo -u labuser unshare -Ur id     # uid=0 in a new userns = precondition open
                                   # (denied on stock Ubuntu 24.04 = mitigation working)

# The public FuzzingLabs trigger (catchall GOTO + aborted batch). Inlined here as
# documentation; this repo does not ship an executable exploit/trigger file.
sudo -u labuser unshare -Urn bash -c '
  nft add table inet t; nft add chain inet t c
  nft add map inet t m "{ type ipv4_addr : verdict; }"
  nft add element inet t m "{ * : goto c }"
  printf "delete element inet t m { * }\ndelete element inet t m { 1.2.3.4 }\n" > /tmp/b.nft
  nft -f /tmp/b.nft; nft flush ruleset'

このシーケンスはバグのあるアボートパスを実行します。権限昇格チェーンは含まれておらず、通常のカーネルでは何も出力されません(以下参照)。

What I actually observed (three flavours, genuine)

トリガーに関する正直な所見: 通常のプロダクションカーネルでは無音です。 バグのあるアボートパスを実行してもクラッシュは発生せず、dmesg 出力もなく、解放と再利用をループしても同様です。解説記事にある KASAN: slab-use-after-free 出力は KASAN/デバッグカーネルからのものです。潜在的な Use-After-Free を武器化するにはエクスプロイトのヒープスプレー(このリポジトリには含まれていません)が必要です。このラボは、非特権ユーザーがバグに到達できることを証明し、Ubuntu のデフォルトの AppArmor 制限がそのパスをブロックすることを示し、明確な EXPOSED / MITIGATED / fixed の判定を提供します。設計上、root シェルを提供するものではありません。

Mitigation

非特権ユーザーネームスペースを制限し(公開エクスプロイトの現実的な経路を閉じる)、その後カーネルにパッチを適用します。

root@kitploit:~
# Ubuntu 23.10+ (AppArmor-based, keeps legitimate userns users working):
echo "kernel.apparmor_restrict_unprivileged_userns=1" | sudo tee /etc/sysctl.d/99-restrict-userns.conf
sudo sysctl --system

# Elsewhere (blanket disable; set both on Debian/Ubuntu):
printf 'kernel.unprivileged_userns_clone=0\nuser.max_user_namespaces=0\n' | sudo tee /etc/sysctl.d/99-restrict-userns.conf
sudo sysctl --system

# Patch (Ubuntu 24.04 generic fixed at 6.8.0-107.107):
sudo apt update && sudo apt install --only-upgrade linux-image-generic && sudo reboot

References

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-23111
  • Exodus Intelligence "Off By !": https://blog.exodusintel.com/2026/06/08/off-by-exploiting-a-use-after-free-in-the-linux-kernel/
  • FuzzingLabs reproduction: https://fuzzinglabs.com/repro-cve-2026-23111/
  • Ubuntu: https://ubuntu.com/security/CVE-2026-23111
  • Red Hat: https://access.redhat.com/security/cve/cve-2026-23111
  • Debian: https://security-tracker.debian.org/tracker/CVE-2026-23111

License

MIT. 防御および教育目的の使用。

ツールをダウンロード
DistroLaunch withWhy
Ubuntu 24.04 / 22.04Multipass (Ubuntu のみ)Exodus は両方で再現されました。24.04 はデフォルトで AppArmor のユーザーネームスペース制限を搭載しているため、緩和策を示しています。
Debian 12Vagrant (vagrant up debian)Exodus はこれで再現されました。非特権ユーザーネームスペースはデフォルトで開いています。
AlmaLinux / Rocky 10.1Vagrant (vagrant up alma)FuzzingLabs のターゲットカーネル 6.12.0-124.x.el10 と一致するため、公開トリガーが公開されたとおりに再現されます。
grubby --set-default
DistroVulnerable kernel booteduserns defaultVerdict
Ubuntu 24.046.8.0-1028-aws制限あり(AppArmor)緩和済み、未修正
Debian 126.1.0-39-cloud (6.1.148-1)開いている露出あり
AlmaLinux 10.16.12.0-124.38.1.el10_1開いている露出あり