
LinuxカーネルのauthencesnテンプレートにおけるAF_ALGとsplice()を介したローカル権限昇格の脆弱性に関するドキュメントと分析。影響を受けるバージョン、検出方法、緩和策を含む。
ローカル権限昇格 — Linuxカーネルの
authencesn暗号テンプレートにおけるAF_ALG+splice()を介した脆弱性。
2026年4月29日にTheori(Xint Code)により公開。
| フィールド | 詳細 |
|---|---|
| CVE | CVE-2026-31431 |
| ニックネーム | Copy Fail |
| CVSS | 7.8 HIGH |
| 種別 | ローカル権限昇格(LPE) |
| 導入時期 | Linuxカーネル4.14(2017年、コミット72548b093ee3) |
| 修正時期 | メインラインコミットa664bf3d603d |
| 必要条件 | ローカルの非特権シェルアクセス |
| リモート攻撃ベクトル | なし — ローカルのみ |
カーネルのauthencesn AEADラッパーにおける論理的な欠陥により、非特権のローカルユーザーがシステム上の任意の読み取り可能なファイルのページキャッシュに対して、決定的かつ制御された4バイト書き込みを実行できます — /usr/bin/suなどのsetuidバイナリも含まれます。
根本原因は、ページキャッシュページを書き込み可能なscatterlistに配置した2017年のインプレース処理最適化にあります。authencesnアルゴリズムは、拡張シーケンス番号の再配置中に、意図した出力領域の外側に4バイトのスクラッチデータを書き込みます。この最適化によって導入されたscatterlist構造のため、その4バイトはsplice()を介して供給されたファイルのページキャッシュに到達し、ファイル権限を完全にバイパスします。
レースコンディションなし。リトライなし。クラッシュのリスクなし。テスト済みの全ディストリビューションで決定的に再現可能。
脆弱: Linuxカーネル4.14から6.18.21、および6.19.12より前の6.19.x。
この範囲のカーネルを搭載する主要なディストリビューションはすべて影響を受けます。以下を含みます:
| ディストリビューション | テスト済みバージョン |
|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 |
| SUSE 16 | 6.12.0-160000.9-default |
影響を受けない: Ubuntu 26.04(Resolute)以降。
メインラインコミットa664bf3d603dを含むカーネルに更新してください。このコミットは2017年のインプレース最適化を巻き戻します。
# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y && sudo reboot
# RHEL / AlmaLinux / Amazon Linux
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot
# SUSE
sudo zypper refresh && sudo zypper update kernel-default && sudo reboot
algif_aeadの無効化(一時的)直ちにパッチを適用できない場合は、脆弱なモジュールを無効化して攻撃対象領域を閉じます。
RHEL系システムに関する注意: RHEL/AlmaLinux/CentOSでは
algif_aeadはカーネルに組み込まれています(CONFIG_CRYPTO_USER_API_AEAD=y)。modprobe.dによる回避策はこれらのシステムでは機能しません。代わりにinitcall_blacklist方式を使用してください。
Debian/Ubuntu(モジュールがロード可能):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead 2>/dev/null || true
RHEL系(カーネル組み込み — 再起動が必要):
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
sudo reboot
再起動後に確認:
grep initcall_blacklist /proc/cmdline
信頼できないワークロード(コンテナ、CIランナー、サンドボックス環境)では、パッチ適用状態に関係なく、seccompポリシーでAF_ALGソケットの作成をブロックします。これにより、脆弱なカーネルでも攻撃対象領域を制限できます。
algif_aeadが現在ロードされているか、使用中かを確認します:
# モジュールがロードされているか確認
lsmod | grep algif_aead
# AF_ALGソケットを開いているプロセスがあるか確認
lsof | grep AF_ALG
ss -xa | grep alg
ランタイム検出シグネチャはSysdig Secureで利用可能です(ルール: AF_ALG Page Cache Poisoning Leading to Privilege Escalation)。
xD The Watcher — レッドチーマー、倫理的ハッカー & AIセキュリティ研究者
GitHub: @xd20111
ブログ: yourhacker
このリポジトリは、研究および防御目的でこの脆弱性を文書化しています。権威ある技術解説と公式PoCについては、上記にリンクされているTheoriの開示情報を参照してください。
脅威モデルに共有カーネル型マルチテナンシー(共有ホスト上のコンテナ、CIランナー、ビルドファーム)が含まれる場合、パッチ適用までの間、分離境界は実質的に弱まります。ハードウェアまたはVMレベルの分離が適切な対応であり、ネームスペース境界ではありません。
| Dirty Cow (2016) | Dirty Pipe (2022) | Copy Fail (2026) |
|---|
| レースコンディションが必要 | あり | 部分的 | なし |
| バージョン依存 | あり | あり | なし |
| 信頼性 | 不安定 | 中程度 | 決定的 |
| ディストリビューション網羅性 | 限定的 | 限定的 | 2017年以降すべて |
| コンポーネント | 影響 |
|---|
| dm-crypt / LUKS | ✅ 影響なし |
| SSH | ✅ 影響なし |
| IPsec / XFRM | ✅ 影響なし |
| kTLS / カーネル内TLS | ✅ 影響なし |
| OpenSSL / GnuTLS / NSS(デフォルトビルド) | ✅ 影響なし |
afalgエンジンを明示的に有効化したOpenSSL | ⚠️ ユーザー空間暗号にフォールバック |
aead/skcipher/hash AF_ALGソケットを直接バインドするアプリケーション | ⚠️ 動作しなくなります — lsof | grep AF_ALGで確認 |
| リソース | リンク |
|---|
| 日付 | イベント |
|---|
| 2017年 | コミット72548b093ee3によりリグレッションが導入 |
| 2026年4月上旬 | アップストリーム修正がマージ(コミットa664bf3d603d) |
| 2026年4月29日 | Theori / Xint Codeによる公開開示 |
| 2026年4月30日 | ディストリビューションのパッチ配布開始 |
| 2026年5月1日 | AlmaLinuxのパッチ適用済みカーネルが本番リポジトリに |