Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-46331-audit — cve-2026-46331-監査スクリプト | Kitploit
ツール/GitHubGitHub/quaerendir/cve-2026-46331-audit
特権昇格脆弱性分析エクスプロイトフォレンジック論文と研究学習と教育インシデントレスポンス
GitHubquaerendir/cve-2026-46331-audit

cve-2026-46331-audit

cve-2026-46331-監査スクリプト

リポジトリを見る
2529日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

cve-2026-46331-audit

CVE Name CVSS Disclosed Shell License Version CI

CVE-2026-46331(別名 pedit COW)向けの読み取り専用監査スクリプト — Linux カーネルの net/sched にある act_pedit アクションにおける部分的なコピーオンライトのバグで、ローカルの非特権ユーザーがページキャッシュのメモリを破壊し、root 権限へ昇格できる脆弱性です。

   ____  _____ ____ ___ _____      ____ _____        __
  |  _ \| ____|  _ \_ _|_   _|    / ___/ _ \ \      / /
  | |_) |  _| | | | | |  | |     | |  | | | \ \ /\ / /
  |  __/| |___| |_| | |  | |     | |__| |_| |\ V  V /
  |_|   |_____|____/___| |_|      \____\___/  \_/\_/
     CVE-2026-46331    net/sched act_pedit partial COW

TL;DR

tcf_pedit_act() はキーループの前に skb_ensure_writable() の COW 範囲を tcfp_off_max_hint を使って一度だけ計算します。型付きキーはヒントがカバーしないランタイムヘッダーオフセットを追加するため、最終的な書き込みの一部が COW された領域の外側に着地します。結果として、共有ページキャッシュページが書き換えられ、キャッシュされた setuid バイナリ(古典的な標的: /bin/su)がメモリ上で汚染される可能性があります。ディスク上のハッシュはクリーンのままです。ファイル整合性モニターはこれを検知できません。

Dirty COW (CVE-2016-5195)、Dirty Pipe (CVE-2022-0847)、Copy Fail (CVE-2026-31431)、Dirty Frag (CVE-2026-46300) と同じバグファミリーです。エントリポイントは異なりますが、ページ所有権の失敗は同じです。

CVECVE-2026-46331
コンポーネントLinux カーネル net/sched / act_pedit
クラス部分 COW → ページキャッシュ破壊 → LPE
攻撃ベクトルローカル (CAP_NET_ADMIN、通常は非特権 userns 経由で取得)
上流の影響範囲5.18 .. 7.1-rc6
上流の修正7.1-rc7
公開 PoCpacket_edit_meme (RHEL 10、Debian 13、Ubuntu 24.04.4 で検証済み)
Red Hat 深刻度Important
SUSE CVSS 3.17.8 (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)

このスクリプトの動作

厳密に読み取り専用のトリアージです。モジュールをロードすることはなく、sysctl に触れることもなく、PoC を実行することもありません。本番環境で安全に実行できるよう設計されています。

  • 実行中のカーネル、ディストリビューション、カーネルパッケージのバージョンをインベントリ化します。
  • 4 つの独立したシグナルを通じて act_pedit の到達可能性を調査します:
    • 現在ロード済み (lsmod)
    • オンデマンドでロード可能 (modinfo)
    • 実行中のカーネルに組み込み済み (/boot/config-$(uname -r)、/proc/config.gz、modules.builtin)
    • modprobe.d 内の install ... /bin/true オーバーライドによってブロックされているか、または net-act-pedit エイリアス経由で act_pedit を自動ロードするカーネル (6.9+) における blacklist によってブロックされているか (古いカーネルは名前で要求するため、blacklist では止められません)
  • 既存の tc action pedit ルールを一覧表示します (情報提供のみ、変更なし)。
  • userns / netns のゲートを読み取ります: user.max_user_namespaces、kernel.unprivileged_userns_clone、user.max_net_namespaces、および Ubuntu AppArmor の userns 制限。
  • /etc/os-release に基づくベンダーパッチマトリックスのヒューリスティック (RHEL 8/9/10、Debian 11/12/13/14、Ubuntu 18.04→26.04、SUSE、Amazon Linux、Arch 系ローリング)。
  • auditd と journalctl によるオプションの行動的 IoC ハント (--since と --until で設定可能なウィンドウ)。
  • リスクスコア 0-100 と最終判定: PATCHED / NOT_APPLICABLE / MITIGATED / VULNERABLE / UNKNOWN。
  • フリートオーケストレーション向けに設計された終了コード。

使用方法

sudo ./cve-2026-46331-audit.sh                       # full text report
sudo ./cve-2026-46331-audit.sh --json                # machine-readable JSON, no banner
sudo ./cve-2026-46331-audit.sh --quiet --no-hunt     # one-line verdict for mass scans
sudo ./cve-2026-46331-audit.sh --since 2026-06-01    # widen IoC hunt window
sudo ./cve-2026-46331-audit.sh --since 2026-06-01 --until 2026-09-01  # bounded IoC window
sudo ./cve-2026-46331-audit.sh --no-banner           # text report without the ASCII banner
./cve-2026-46331-audit.sh --version                  # print script version and exit

終了コード

コード意味
0PATCHED または NOT_APPLICABLE(カーネルがバグより前のもの)
1MITIGATED(緩和策が有効、カーネルは依然として脆弱、それでもパッチを適用)
2VULNERABLE(必要な前提条件のうち1つ以上が満たされている、修正済みカーネルなし)
3UNKNOWN(共有環境 / CI / Kubernetes コンテキストでは疑わしいものとして扱う)
4ERROR(スクリプトを実行できなかった、ツールの欠如または不正な環境)

出力例

完全な実行結果については examples/sample-output.txt を、JSON 形式については examples/sample-output.json を参照してください。

リスクスコアリングモデル

スコアは以下を重み付けして組み合わせたものです:

シグナル重み
ベンダーの判定 VULNERABLE+50
ベンダーの判定 UNKNOWN+30
act_pedit がカーネルに組み込み済み+25
act_pedit がロード可能、オーバーライドなし+20
act_pedit がロード可能、オーバーライドまたはブラックリストが有効+5
act_pedit が現在ロード済み+5
非特権の userns+netns に到達可能、AppArmor ゲートなし+15
非特権の userns+netns に到達可能、AppArmor ゲート有効+8
ハントウィンドウ内で IoC を検出+10

上限は 100 です。約 70 を超える場合はマルチテナント / CI / Kubernetes ノードにおいて緊急対応として扱うべきです。約 20 未満は通常、ホストが問題ないことの確認となります。

大規模デプロイ

Ansible

ansible -i inventory all -m script \
  -a "cve-2026-46331-audit.sh --json --quiet --no-hunt" \
  --become \
  | tee /tmp/audit.jsonl

次に、jq で集約します:

grep -v '^[a-z]' /tmp/audit.jsonl | jq -s 'group_by(.verdict) | map({verdict: .[0].verdict, hosts: length})'

プレイ内の failed_when

- name: audit CVE-2026-46331
  ansible.builtin.script: cve-2026-46331-audit.sh --quiet --no-hunt
  register: audit
  failed_when: audit.rc == 2
  changed_when: false

緩和策(パッチ適用を遅らせる必要がある場合)

優先順位の高い順に記載します。スクリプトは検出結果に基づいて適切なものを推奨します。

# Option 1: block act_pedit if you don't use it.
tc actions list action pedit                  # MUST be empty before doing this

# 1a) Hard block via modprobe install override (strongest).
echo 'install act_pedit /bin/true' | sudo tee /etc/modprobe.d/disable-act_pedit.conf

# 1b) `blacklist act_pedit` only stops the autoload on kernels 6.9+, which
#     request the "net-act-pedit" alias. Older kernels load it by name and
#     ignore the blacklist, so prefer 1a. Check your kernel:
modinfo -F alias act_pedit | grep -qx net-act-pedit && echo "blacklist works here"

lsmod | grep -q act_pedit && sudo rmmod act_pedit
# Option 2: restrict unprivileged user namespaces.
# Will break rootless Podman/Docker, browser sandboxes, Flatpak, unprivileged unshare, some CI sandboxes.
sudo sysctl -w user.max_user_namespaces=0           # EL-family
sudo sysctl -w kernel.unprivileged_userns_clone=0   # Debian/Ubuntu

# Option 2b: restrict network namespaces (breaks the CAP_NET_ADMIN acquisition path).
# Less disruptive than disabling all user namespaces, but still breaks some container tooling.
sudo sysctl -w user.max_net_namespaces=0

本当の修正はベンダーのカーネル更新と再起動です。再起動後に uname -r を確認することが、それを証明する唯一の方法です。

バグファミリーの背景

これは同じアーキテクチャ上の失敗の5回目の反復です。いずれも直接的な原因は修正されましたが、根本原因は修正されていません。すなわち、所有権の境界を越えてページを共有するゼロコピーのファストパスであり、そこではすべての書き手がバイトを変更する前にプライバシーを証明しなければならず、それが数百の呼び出し箇所に存在します。

CVE年サブシステムプリミティブ
CVE-2016-51952016mm読み取り専用マッピングにおける COW 競合
CVE-2022-08472022pipe / splicepipe_buffer フラグのページキャッシュへの漏洩
CVE-2026-314312026crypto AF_ALG/AEAD読み取り専用ファイルキャッシュ上でのインプレース暗号処理
CVE-2026-463002026XFRM ESP-in-TCPskbuff 共有フラグメントマーカーの喪失
CVE-2026-463312026net/sched act_pedit遅延解決された型付きキーオフセットによる部分的な COW

カーネル内 Rust は、所有権型によってまさにこの種のクラスに対処します。明日 net/sched に登場することはないでしょう。

参考文献

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-46331
  • Red Hat: https://access.redhat.com/security/vulnerabilities/RHSB-2026-008
  • Ubuntu: https://ubuntu.com/security/CVE-2026-46331
  • Debian: https://security-tracker.debian.org/tracker/CVE-2026-46331
  • アップストリームのコミットと説明: NVD レコードの参考文献を参照してください。

ライセンス

MIT。LICENSE を参照してください。

免責事項

ツールをダウンロード