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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
copy-fail-checker — Copy Fail Linuxカーネルの脆弱性(CVE-2026-31431)に対する読み取り専用のBashチェッカー | Kitploit
ツール/GitHubGitHub/samanzamani/copy-fail-checker
特権昇格脆弱性スキャナー脆弱性分析エクスプロイトスクリプトと自動化暗号化学習と教育
GitHubsamanzamani/copy-fail-checker

copy-fail-checker

Copy Fail Linuxカーネルの脆弱性(CVE-2026-31431)に対する読み取り専用のBashチェッカー

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Copy Fail Checker — CVE-2026-31431

依存関係が少なく軽量な Bash スクリプトで、Linux システムが Copy Fail ローカル権限昇格脆弱性(CVE-2026-31431)にさらされているかどうかを確認します。

このスクリプトは 読み取り専用 です。脆弱性を悪用することはなく、カーネルモジュールをロードすることも、システムを変更することもありません。


Copy Fail とは

Copy Fail は、Linux カーネルの authencesn AEAD 暗号テンプレートにおける論理バグであり、ユーザー空間から AF_ALG(algif_aead)ソケットインターフェース経由で到達可能です。

フィールド値
CVECVE-2026-31431
開示日2026-04-29
CVSS v3.17.8 (High)
クラスローカル権限昇格
影響を受けるコンポーネントcrypto/authencesn + crypto/algif_aead
導入時期2017年(algif_aead.c におけるインプレースAEAD最適化)
メインライン修正コミット a664bf3d603d、2026-04-01 マージ

なぜ重要か

権限のないローカルユーザーは、自分が読み取り可能な任意のファイルの ページキャッシュへの、決定論的で制御された 4 バイト書き込み を引き起こすことができます。公開されている概念実証(732 バイトの Python)は、このプリミティブを使用して setuid バイナリを上書きし、2017 年以降にリリースされたほぼすべての主流ディストリビューションで root を取得します。

影響を受けるシステム

2017 年以降に構築され algif_aead が有効なカーネルを搭載するすべての Linux ディストリビューションが影響を受けます。影響が確認されているファミリーは以下のとおりです。

  • Ubuntu 18.04 → 25.10(Ubuntu 26.04 "Resolute" は影響を受けません)
  • Debian(現在サポートされているすべてのスイート)
  • RHEL / AlmaLinux / Rocky / CentOS Stream 8, 9, 10
  • SUSE Linux Enterprise / openSUSE
  • Amazon Linux 2023
  • 上記を基にしたほとんどのコンテナホストおよびマネージド Kubernetes ノードイメージ

クイックスタート

root@kitploit:~
# スクリプトをダウンロード
curl -fsSLO https://raw.githubusercontent.com/samanzamani/copy-fail-checker/main/check-copy-fail.sh

# 実行可能にする
chmod +x check-copy-fail.sh

# 実行する
./check-copy-fail.sh

またはリポジトリをクローン:

root@kitploit:~
git clone https://github.com/samanzamani/copy-fail-checker.git
cd copy-fail-checker
./check-copy-fail.sh

スクリプトは root を必要としません。通常のユーザーとして実行すると、攻撃者が持つまさにそのコンテキストで攻撃対象領域を最も現実的に把握できます。


スクリプトが確認すること

スクリプトは3つの独立したチェックを実行し、それらを統合して単一の判定を下します。

1. カーネルバージョン

/etc/os-release と uname -r を読み取り、実行中のカーネルをディストリビューションのセキュリティチームが公開した公式の修正バージョンと比較します。現在のバージョンテーブルは以下をカバーしています:

ディストリビューションがテーブルにない場合、スクリプトは以下のランタイムチェックにフォールバックします。

2. algif_aead モジュールの状態

スクリプトは何も変更せずに4つの項目を検査します:

  • モジュールが 現在ロードされているか(lsmod)
  • モジュールが ロード可能か(modinfo)
  • モジュールが /etc/modprobe.d、/usr/lib/modprobe.d、/run/modprobe.d で ブラックリストに登録されているか
  • モジュールが /boot/config-<uname> または /proc/config.gz で ビルトインされているか

ブラックリストに登録され、ロードされておらず、ビルトインでもない場合、パッチ未適用のカーネルでも攻撃対象領域は閉じられます。

3. AF_ALG ソケットの到達可能性

最も信頼性の高いシグナルは、攻撃者が実際に確認するものです。スクリプトは小さな Python プローブ(socket.socket(AF_ALG, SOCK_SEQPACKET, 0) に続いて bind() で authencesn(hmac(sha256),cbc(aes)) AEAD テンプレートにバインド)を使用して、権限のないコンテキストから AF_ALG ソケットを作成およびバインドできるかどうかを確認します。プローブはソケットを作成、バインドし、すぐに閉じるため、悪用可能なものは残しません。

python3 がインストールされていない場合、プローブはスキップされ、判定はチェック1と2に依存します。


可能な判定


自動化のための JSON 出力

パイプライン、構成管理、またはフリートスキャンの場合は --json を渡します:

root@kitploit:~
./check-copy-fail.sh --json

出力例:

root@kitploit:~
{
  "verdict": "vulnerable",
  "distro_id": "ubuntu",
  "distro_version_id": "24.04",
  "kernel": "6.8.0-31-generic",
  "patched_version": "",
  "kernel_status": "unknown",
  "module_loaded": 0,
  "module_builtin": 0,
  "module_available": 1,
  "module_blacklisted": 0,
  "af_alg_status": "reachable"
}

緩和策

推奨: ベンダーカーネルアップデートをインストール

これが唯一の完全な修正です。更新後、新しいカーネルが実際に実行されるように 再起動 してください。

root@kitploit:~
# Debian / Ubuntu
sudo apt update && sudo apt full-upgrade && sudo reboot

# RHEL / AlmaLinux / Rocky / CentOS Stream
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot

# openSUSE / SLES
sudo zypper refresh && sudo zypper update && sudo reboot

# Amazon Linux 2023
sudo dnf upgrade --releasever=latest && sudo reboot

一時的な回避策: algif_aead を無効化

すぐにパッチ適用済みカーネルに再起動できない場合は、脆弱なモジュールをブラックリストに登録します。これにより、合法的に AF_ALG AEAD 暗号を使用するアプリケーション(ほとんどのサーバーでは稀。ステージング環境で事前に確認)が壊れます。

root@kitploit:~
# 再起動後もブラックリストを永続化
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf

# 実行中のカーネルから即座にアンロード
sudo rmmod algif_aead 2>/dev/null || true

モジュールがビルトインの場合、ブラックリストは機能しませんが、initcall を無効にすることが可能です。再起動が必要です。

root@kitploit:~
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"

sudo reboot

コンテナ化されたワークロードの場合は、seccomp プロファイルから AF_ALG ソケットファミリもブロックし、侵害されたコンテナがカーネル面に到達できないようにします。


実行例

root@kitploit:~
== システム情報 ==
[INFO]    ディストリビューション : Ubuntu 24.04.2 LTS (ubuntu 24.04)
[INFO]    カーネル       : 6.8.0-31-generic

== チェック 1/3 — カーネルバージョン ==
[WARN]    ubuntu 24.04 のベンダー修正カーネルバージョンは記録されていません。
[WARN]    以下のランタイム緩和チェックにフォールバックします。

== チェック 2/3 — algif_aead カーネルモジュール ==
[WARN]    algif_aead はロードされていませんが、オンデマンドで自動ロード可能です(ブラックリストが見つかりません)。

== チェック 3/3 — AF_ALG ソケットの到達可能性 ==
[VULN]    AF_ALG ソケットはこの非特権コンテキストから到達可能です。

== 判定 ==
[VULN]    このシステムは CVE-2026-31431 に対して脆弱である可能性があります。
[VULN]    ベンダーカーネルアップデートを適用するか、一時的な緩和策として algif_aead をブラックリストに登録してください。

制限事項

  • 修正バージョンテーブルは上記にリストされたファミリーのみをカバーしています。拡張するための PR を歓迎します。
  • スクリプトは uname -r を信頼します。アウトオブツリーまたは再構築されたカーネルを実行している場合、バージョン比較は修正が実際にバックポートされたかどうかを反映しない可能性があります。
  • ライブコンテナ / サンドボックス環境では、単に seccomp が有効であるために AF_ALG に対して blocked_permission が報告されることがあります。ホストカーネル自体は依然として脆弱である可能性があります。

参考文献

  • CERT-EU advisory 2026-005
  • Xint disclosure: 732 bytes to root on every major Linux distribution
  • AlmaLinux: CVE-2026-31431 patches released
  • Ubuntu: Copy Fail vulnerability fixes available
  • Microsoft Security Blog: Copy Fail in cloud environments
  • Sophos: PoC exploit available
  • SUSE response to copy.fail
  • The Hacker News coverage
  • Bugcrowd: What we know about Copy Fail
  • The Register coverage

ライセンス

MIT — 自由に使用、変更、配布してください。無保証です。

ツールをダウンロード
ディストリビューション修正済みカーネル (≥)
AlmaLinux / RHEL / Rocky / CentOS 84.18.0-553.121.1.el8_10
AlmaLinux / RHEL / Rocky / CentOS 95.14.0-611.49.2.el9_7
AlmaLinux / RHEL / Rocky / CentOS 106.12.0-124.52.2.el10_1
Ubuntu 26.04+ ("Resolute")影響なし
Ubuntu 18.04 – 25.10ローリングリリース、apt を参照
Debian (全スイート)ローリングリリース、DSA を参照
判定終了コード意味
patched0実行中のカーネルがベンダー修正バージョン以上です。
mitigated0AF_ALG がブロックされ、モジュールがロードされていません。
likely_mitigated0モジュールがブラックリストに登録されロードされていません。ライブプローブは不可能でした。
vulnerable1カーネルがパッチ未適用で、algif_aead / AF_ALG に到達可能です。
unknown2判定に十分なシグナルがありません。潜在的に脆弱として扱ってください。
not_applicable3Linux 上で実行されていません。