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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/ctzisme/copyfail-guard
防御ツール脆弱性スキャナー構成監査インシデントレスポンス
GitHubctzisme/copyfail-guard

copyfail-guard

Linuxシステム上でCVE-2026-31431(Copy Fail)を検出および緩和します。

リポジトリを見るウェブサイト
23ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

copyfail-guard

PyPI Python License pylint

依存関係ゼロのPython CLIで、LinuxホストがCVE-2026-31431(「Copy Fail」)に露出しているかどうかをエクスプロイトを実行せずにチェックします。 また、影響を受けるコンポーネントがカーネルモジュールとしてロード可能な場合、保守的な一時緩和策を適用することもできます。 Debian/Ubuntu、RHEL/Rocky/AlmaLinux、Fedora、SUSEに対応しています。

root@kitploit:~
pip install copyfail-guard
copyfail-guard

背景

CVE-2026-31431は、algif_aead(AF_ALG AEADソケット)カーネルインターフェースの論理バグで、非特権のローカルユーザーが任意の読み取り可能なファイルのページキャッシュに対して制御された4バイト書き込みを行い、root権限昇格につながるものです。 CVSS 7.8、カーネル4.14以降に存在し、2026年4月以降の安定版リリースで修正されました。 公開エクスプロイトが存在し、この脆弱性はCISA KEVに掲載されています。

なぜ単にエクスプロイトを実行しないのか?

一部の脆弱性チェックは「エクスプロイトを実行して動作するかどうかを確認する」というものです。 これは本番ホストで行うべきことではありません。 copyfail-guardは非エクスプロイト方式を採用しています。バグを発動させたり、setuidバイナリを変更したり、悪用可能性を証明したりすることはありません。代わりに、ホストの状態(カーネルバージョン、モジュールロード状態、modprobe設定)を検査し、マシンが露出しているように見えるかどうかを報告します。

このツールが行うこと

fixは意図的に最小限です — パッケージマネージャーは呼び出しません。 恒久的な修復には、ディストリビューションの通常の更新メカニズムを通じてカーネルをアップグレードする必要があります。

インストール

root@kitploit:~
pip install copyfail-guard

または、インストールせずにチェックアウトから直接実行:

root@kitploit:~
PYTHONPATH=src python3 -m copyfail_guard detect

使用方法

root@kitploit:~
copyfail-guard [--json] [--dry-run] [--quiet] [detect | fix | reset]

detect(デフォルト)

root@kitploit:~
$ copyfail-guard
[copyfail-guard] CVE-2026-31431 (Copy Fail) — VULNERABLE
  Distribution: Ubuntu 24.04.1 LTS  (debian family)
  Kernel:       6.8.0-50-generic  (branch 6.12, fixed at 6.12.85)
  Module:       algif_aead — loaded as .ko
  Mitigation:   none

Recommended actions:
  1. Apply mitigation now:
       sudo copyfail-guard fix
  2. Update the kernel for a permanent fix:
       Update the kernel on this system to 6.12.85 or later (whatever your
       distribution ships once it has integrated the CVE-2026-31431 fix), then reboot.

fix

適用する前に必ず--dry-runでプレビューしてください:

root@kitploit:~
$ sudo copyfail-guard --dry-run fix
[copyfail-guard] fix (dry-run) — OK
  [ ok ] Pre-flight checks (Linux, host, root)
  [skip] Would write modprobe blacklist  [/etc/modprobe.d/cve-2026-31431-copyfail-guard.conf]
  [skip] Would attempt to unload algif_aead (not currently loaded)  [algif_aead]
  [skip] Would append audit record  [/var/log/copyfail-guard.log]

$ sudo copyfail-guard fix
[copyfail-guard] fix — OK
  [ ok ] Pre-flight checks (Linux, host, root)
  [ ok ] Wrote modprobe blacklist  [/etc/modprobe.d/cve-2026-31431-copyfail-guard.conf]
  [ ok ] Unloaded algif_aead  [algif_aead]
  [ ok ] Appended audit record  [/var/log/copyfail-guard.log]

Next step for a permanent fix:
  Update the kernel to a CVE-2026-31431-patched version using your
  distribution's normal update mechanism, then reboot.

モジュールが現在使用中の場合、アンロード手順が失敗する可能性があります。その場合でも、永続的なmodprobeルールは正常にインストールでき、copyfail-guardはアンロードの失敗を、モジュールが削除されたかのように装うのではなく、警告スタイルのアクションレコードとして報告します。

JSON出力

--jsonは、jq、Ansible、SOARパイプラインに適した構造化ドキュメントをstdoutに出力します:

root@kitploit:~
$ copyfail-guard --json | jq .verdict
"vulnerable"

$ copyfail-guard --json | jq '{verdict, kernel: .kernel.patched_threshold}'
{
  "verdict": "vulnerable",
  "kernel": "6.12.85"
}

終了コード

判定結果

緩和策の削除

パッチ適用済みカーネルへのアップグレード後、resetサブコマンドを使用してfixによってインストールされたmodprobeルールを削除します:

root@kitploit:~
$ sudo copyfail-guard --dry-run reset
[copyfail-guard] reset (dry-run) — OK
  [skip] Would remove /etc/modprobe.d/cve-2026-31431-copyfail-guard.conf

$ sudo copyfail-guard reset
[copyfail-guard] reset — OK
  [ ok ] Removed /etc/modprobe.d/cve-2026-31431-copyfail-guard.conf

Reboot to allow algif_aead to load again if needed.

resetは冪等です — ファイルがすでに存在しない場合、終了コード0で「何もすることはありません」というメッセージを出力します。その後、再起動してください。

注意事項

コンテナ。 fixはコンテナ内での実行を拒否します。/proc/modulesはホストカーネルを反映しますが、コンテナにはモジュールをロードまたはアンロードする権限がないためです。copyfail-guardはホスト上で直接実行してください。

組み込みのalgif_aead。 一部のカーネルはalgif_aeadをイメージに直接コンパイルします(CONFIG_CRYPTO_USER_API_AEAD=y)。この構成ではmodprobeによる緩和策は効果がなく、唯一の修復方法はカーネルのアップグレードです。detectはこの場合unmitigable_builtinを報告します。fixを実行してもmodprobeルールはインストールされます(共存するロード可能なコピーのロードを防ぎます)が、組み込みインスタンスには影響しません — カーネルのアップグレードと再起動が唯一の実際の修復方法です。

blacklistとinstall … /bin/falseの比較。 どちらのディレクティブも通常の自動ロードをブロックしますが、install algif_aead /bin/falseは通常の明示的なmodprobe algif_aead呼び出しもブロックするため、より強力です。十分な権限を持つ管理者は、低レベルのモジュールロードツールや特別なmodprobeフラグを使用するなどして、modprobeポリシーを回避できます。copyfail-guardは常に強力な形式をインストールします。システムにすでにプレーンなblacklistディレクティブがある場合、ツールはmitigatedを報告しますが、アップグレードを推奨するメモを出力します。

SELinux/AppArmor。 RHELでの/etc/modprobe.d/への書き込みは、通常、親ディレクトリからsystem_u:object_r:modules_conf_t:s0を継承するため、copyfail-guardが書き込むファイルに対して手動の再ラベル付けは通常不要です。

initramfs。 algif_aeadは主要ディストリビューションのブートイメージには通常含まれないため、copyfail-guardはmodprobeルールのインストール後にupdate-initramfs -uやdracut -fを実行しません。ディストリビューションやローカルビルドがinitramfsにalgif_aeadを含める場合は、ディストリビューションのカーネル/モジュールガイダンスに従ってください。

ライセンス

Apache 2.0 — LICENSEを参照してください。

ツールをダウンロード
サブコマンド動作
detect5つのシグナル(カーネルバージョン、/proc/modules、modules.builtin、modules.dep、modprobe設定)を組み合わせて、6つの判定結果のいずれかを出力します
fixinstall algif_aead /bin/false というmodprobeルールを原子的に書き込み、algif_aeadのアンロードを試みます
resetfixによってインストールされたmodprobeルールを削除します(パッチ適用済みカーネルへのアップグレード後に実行)
コード意味
0安全 — 判定結果がpatched、mitigated、またはnot_applicableの場合、または永続的な修正手順が成功した場合
1脆弱 — 判定結果がvulnerableまたはunmitigable_builtinの場合
2エラー — 状態を判定できなかった、前提条件が拒否された、または永続的な修正手順が失敗した場合
判定結果説明
patched実行中のカーネルが修正版以上である
mitigatedカーネルは脆弱だが、algif_aeadがmodprobe設定によってブロックされている
not_applicableカーネルは脆弱だが、algif_aeadがこのシステムに存在しない
vulnerableカーネルは脆弱で、モジュールがロード可能で、緩和策が適用されていない
unmitigable_builtinalgif_aeadがカーネルイメージに組み込まれている — modprobeによる緩和策は効果がなく、カーネルのアップグレードが必要
unknownカーネルバージョンを解析できないか、評価対象範囲外である