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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
copy-fail-cve-2026-31431 — Go版のCopy Fail PoC(CVE-2026-31431向け)です。Linuxカーネルのauthencesn脆弱性を利用し、AF_ALGとspliceを介してページキャッシュへの4バイト書き込みを可能にします。マルチアーキテクチャ対応のビルドパイプラインと詳細な技術ドキュメントを含みます。 | Kitploit
ツール/GitHubGitHub/erdemozgen/copy-fail-cve-2026-31431
エクスプロイトフレームワーク脆弱性分析エクスプロイト学習と教育バイナリエクスプロイト
GitHuberdemozgen/copy-fail-cve-2026-31431

copy-fail-cve-2026-31431

Go版のCopy Fail PoC(CVE-2026-31431向け)です。Linuxカーネルのauthencesn脆弱性を利用し、AF_ALGとspliceを介してページキャッシュへの4バイト書き込みを可能にします。マルチアーキテクチャ対応のビルドパイプラインと詳細な技術ドキュメントを含みます。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Copy Fail - CVE-2026-31431

このリポジトリは、公開されているCopy Fail PoCのGo移植版と、マルチアーキテクチャ対応Linuxバイナリの再現可能なビルドパイプラインを提供します。

Copy Fail(CVE-2026-31431)は、authencesnにおけるLinuxカーネルのロジック欠陥であり、AF_ALGとsplice()を介して参照されるページキャッシュデータへの決定的な4バイト書き込みを可能にします。

責任ある利用

このプロジェクトは、明示的にテストを許可された環境でのみ使用してください。所有していないシステムや、書面による評価許可を得ていないシステムに対してこのPoCを実行しないでください。

クイックテスト(ビルド不要)

ソースからビルドせずにすぐにテストしたい場合は、リリースバイナリをダウンロードして実行してください:

root@kitploit:~
wget https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases/download/v1.0.1/copy-fail-cve-2026-31431_linux_amd64
chmod +x copy-fail-cve-2026-31431_linux_amd64
./copy-fail-cve-2026-31431_linux_amd64

他のアーキテクチャの場合は、GitHub Releasesページから対応するアセットをダウンロードしてください:

https://github.com/ErdemOzgen/copy-fail-cve-2026-31431/releases

目次

  • クイックテスト(ビルド不要)
  • ビルド前提条件
  • ローカルビルド
  • 使用方法
  • トラブルシューティング
  • 概要
  • 重要である理由
  • 根本原因
  • authencesnのトリガーパス
  • バグが到達可能になった経緯
  • 高レベルなエクスプロイトフロー
  • 修正の概要
  • 是正措置
  • 開示のタイムライン
  • 発見された経緯
  • リポジトリ構成
  • GitHub Actions
  • テスト済みディストリビューション
  • 参考文献

ビルド前提条件

  • Go 1.23以上
  • GNU Make

ローカルビルド

すべてのLinuxターゲットをビルド:

root@kitploit:~
make clean build-linux

ビルドとチェックサムの生成:

root@kitploit:~
make clean checksums

dist/内の出力バイナリ:

  • copy-fail-cve-2026-31431_linux_amd64
  • copy-fail-cve-2026-31431_linux_arm64
  • copy-fail-cve-2026-31431_linux_386
  • copy-fail-cve-2026-31431_linux_armv7
  • SHA256SUMS

使用方法

デフォルト実行:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64

カスタムターゲットパスを使用:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -target /path/to/binary

実行後のsu実行を無効化:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -spawn-su=false

ビルドメタデータを表示:

root@kitploit:~
./copy-fail-cve-2026-31431_linux_amd64 -version

トラブルシューティング

オフセット0で以下のようなエラーが発生して実行が失敗する場合:

root@kitploit:~
error: copy chunk at offset 0: splice(pipe->AF_ALG): software caused connection abort

カーネルが脆弱なAEADインプレースパスを拒否している可能性が高いです(例えば、ホストがCVE-2026-31431に対してパッチ適用済みであるか、algif_aeadが緩和・無効化されている場合)。

クイックチェック:

root@kitploit:~
uname -r
grep -E "algif_aead|authencesn" /proc/modules

是正済みのシステムでは、このPoCは失敗することが想定されます。

概要

公開された開示情報によると、脆弱なパスにより、権限のないローカルユーザーが特定の条件下で、読み取り可能なファイルのページキャッシュコンテンツに対して4バイト書き込みプリミティブに影響を与えることができます。

重要な運用上の特性として、実行中にメモリ内のページキャッシュコピーがディスク上のバイトと乖離する可能性があり、ディスクレベルの整合性チェックのみに依存するチームにとって影響分析が容易ではない場合があります。

重要である理由

Copy Failが注目に値するのは、以下のように報告されたためです:

  • 決定的(記述されたトリガーパスにレース条件がない)。
  • テストにおいて主要なLinuxディストリビューション間で移植可能。
  • 実装がコンパクトで、外部ペイロードビルダーへの依存がない。
  • 共有ページキャッシュの動作により、単一プロセスの範囲を超えて関連する。

根本原因

高レベルでは、この問題は3つのメカニズムの交差点に位置します:

  1. AF_ALG AEADリクエスト処理。
  2. splice()ページキャッシュバックアップデータ移動。
  3. authencesn復号スクラッチ動作。

脆弱な設計では、ページキャッシュバックアップセグメントが、アルゴリズム処理中に後で書き込みを受けるリクエスト形状にリンクされる可能性があり、意図された宛先領域のみが変更されるという重要な前提に違反します。

authencesnのトリガーパス

文書化されたパスでは、authencesnはESNレイアウト処理の周辺で宛先側スクラッチ操作を使用し、期待される復号出力契約を超えたオフセットで書き込みを実行します。

インプレースAEADセットアップとチェーンされたscatterlist参照と組み合わせると、この書き込みは攻撃者が選択した領域のページキャッシュバックアップメモリに到達する可能性があります。

バグが到達可能になった経緯

開示情報は複数コミットにわたる進化を説明しています:

  • authencesnの動作は初期の統合履歴に由来します。
  • AF_ALG AEADサポートにより、splice()との相互作用を伴うユーザースペースからの到達可能性が導入されました。
  • 後のalgif_aeadのインプレース最適化により、ソースと宛先のフローがこの交差点を悪用可能にする方法で結合されました。

重要な教訓は構成上のリスクです:個々には合理的な変更でも、組み合わせると安全でなくなる可能性があります。

高レベルなエクスプロイトフロー

公開された解説とPoCは以下のシーケンスを説明しています:

  1. authencesn(hmac(sha256),cbc(aes))用のAF_ALG AEADソケットを開いて設定します。
  2. 細工されたメタデータとチャンク化されたデータを供給します。
  3. splice()を使用して、ページキャッシュバックアップのファイルデータをリクエストパスにルーティングします。
  4. 復号処理をトリガーし、制御された4バイトステップで繰り返します。

このリポジトリのGo実装は、許可された環境での研究と検証のために、その公開PoCロジックをミラーリングしています。

修正の概要

報告された修正は、algif_aeadの脆弱なインプレースAEAD操作をアウトオブプレース動作に戻します。

概念的には:

  • 修正前:このパスではソースと宛先が1つの書き込み可能なチェーンに統合される可能性がありました。
  • 修正後:ソースと宛先は分離されたままとなり、このフローでページキャッシュバックアップのソースセグメントが書き込み可能な宛先領域として使用されるのを防ぎます。

是正措置

  • 上流の修正を含むバージョンにカーネルをパッチ適用します。
  • ベンダーカーネルパッケージの更新をフリートとイメージ全体に展開します。
  • 一時的なハードニング制御を検討します(例えば、運用上可能な場合のAF_ALG使用に関するポリシー制限)。
  • ディスクチェックサムワークフローだけでなく、ランタイムチェックで是正を検証します。

開示のタイムライン

公開された解説に基づく:

日付イベント
2026-03-23Linuxカーネルセキュリティチームに報告
2026-03-24初期の受領確認
2026-03-25パッチの議論・レビュー
2026-04-01メインラインに修正がコミット
2026-04-22CVE-2026-31431が割り当て
2026-04-29公開開示

発見された経緯

公開された研究は、splice()下のユーザースペースから到達可能な暗号コードパスとscatterlist/ページの来歴に焦点を当てた、人間がガイドしAIが支援するサブシステム分析によるものとしています。

リポジトリ構成

  • main.go:Go PoC移植版。
  • Makefile:決定的なマルチアーキテクチャLinuxビルドターゲット。
  • .github/workflows/build.yml:CIビルドおよびリリースアーティファクトワークフロー。

GitHub Actions

ワークフローファイル:.github/workflows/build.yml

トリガー:

  • プルリクエスト
  • mainへのプッシュ
  • v*に一致するタグのプッシュ
  • 手動のworkflow_dispatch

動作:

  1. make clean checksumsで全Linuxバイナリをチェックサム付きでビルドします。
  2. refとコミットSHAで命名されたCIアーティファクトをアップロードします。
  3. v*に一致するタグに対してリリースアセットを自動的に公開します。

推奨されるリリースフロー:

root@kitploit:~
git tag v1.0.0
git push origin v1.0.0

テスト済みディストリビューション

ディストリビューションカーネルバージョン
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.16.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default

参考文献

  • 元の公開記事:https://xint.io/blog/copy-fail-linux-distributions
  • CVEエントリ:CVE-2026-31431
ツールをダウンロード