
algif_aead(AF_ALG)を介したLinuxカーネルのローカル権限昇格 CVSS 7.8 HIGH | 公開日: 2026年4月
通常ユーザーとして実行:
curl -fsSL https://raw.githubusercontent.com/Mrhudson69/cve-2026-31431/main/check_cve_2026_31431.sh -o check.sh && bash check.sh
このスクリプトは:
algif_aead AEADバインドパスに到達可能かどうかを確認rootとして実行:
curl -fsSL https://raw.githubusercontent.com/Mrhudson69/cve-2026-31431/main/patch_cve_2026_31431.sh -o patch.sh && sudo bash patch.sh
サーバーからElastic Agentを削除する場合はrootとして実行:
curl -fsSL https://raw.githubusercontent.com/Mrhudson69/cve-2026-31431/main/uninstall_elastic_agent.sh -o uninstall-elastic.sh && sudo bash uninstall-elastic.sh
このスクリプトは:
elastic-agent uninstall を非対話モードで実行以下の環境内にいる場合:
wg-easy コンテナコンテナ内からホストカーネルにパッチを適用することはできません。
スクリプトはコンテナを自動検出し、安全に終了します。
パッチスクリプトは以下で実行する必要があります:
コンテナ内では実行しないでください。
Linuxカーネルの algif_aead 暗号インターフェースの欠陥により、権限のないローカルユーザーがAF_ALG操作を通じてページキャッシュの内容を破損させることが可能になります。
脆弱なカーネル構成では、以下が可能になる可能性があります:
この問題は、脆弱なAEAD最適化ロジックが存在し到達可能なLinuxカーネルバージョンに影響します。
| OS | バージョン |
|---|---|
| Ubuntu | 20.04 / 22.04 / 24.04 |
| Debian | 11 / 12 / 13 |
| Proxmox VE | 6.x / 7.x / 8.x / 9.x |
| 汎用Linux | 脆弱なカーネルを使用する任意のディストリビューション |
check_cve_2026_31431.sh安全な読み取り専用の検出スクリプト。
| チェック | 説明 |
|---|---|
| カーネルバージョン | 脆弱なカーネル範囲をチェック |
| パッチの有無 | パッチ適用済みカーネルの特定を試行 |
| algif_aeadステータス | モジュールのロード / ブラックリスト状態をチェック |
| AF_ALGソケット | algif_aead AEADバインドの到達可能性をテスト |
Python os.splice | 純Pythonエクスプロイトの実現可能性をチェック |
| Setuid露出 | 一般的なsetuidターゲットを検出 |
| 緩和策 | AppArmor / SELinux / seccompをチェック |
検出スクリプトは:
patch_cve_2026_31431.sh安全なカーネルのみの緩和 + アップグレードスクリプト。
対象:
uninstall_elastic_agent.shLinuxサーバーからElastic Agentをアンインストールするための安全なヘルパースクリプト。
対象:
/opt/Elastic/Agent にElastic Agentがインストールされているシステム以下を作成:
/etc/modprobe.d/cve-2026-31431-disable-algif-aead.conf
内容:
blacklist algif_aead
install algif_aead /bin/false
その後、以下を試行:
rmmod algif_aead
これにより、脆弱なモジュールの自動ロードがブロックされます。
また、update-initramfs が利用可能な場合はinitramfsも更新し、ブラックリストが再起動後も確実に維持されるようにします。
何かをアップグレードする前に、スクリプトは以下を実行:
apt-get -s install --only-upgrade ...
カーネル以外のパッケージがアップグレードされる場合:
スクリプトは自動的に中止します。
これにより、意図しないアプリケーションのアップグレードを防ぎます。
スクリプトは以下のみをアップグレード:
アプリケーション/ランタイムパッケージはアップグレードされません。
システムが再起動した場合、パッチスクリプトは一時的なワンショット systemd サービスをインストールし、次回起動時に検証フェーズを自動的に再実行します。
これにより、単一のスクリプト実行で以下をカバーできます:
まず最も安全なオプション:
sudo bash patch.sh --dry-run
これにより:
本番環境への展開前に推奨されます。
sudo bash patch.sh --no-reboot
sudo bash patch.sh --reboot-now
--reboot-now を使用すると、スクリプトは再起動をスケジュールする前に再起動再開フックをインストールします。
sudo reboot
--no-reboot を使用するか、後で手動で再起動する場合でも、再起動後の検証は次回起動時に自動的に再開されます。
スクリプトは以下に触れないように設計されています:
ただし:
--dry-run を実行パッチログ:
/var/log/cve_2026_31431_kernel_patch.log
実行中のカーネルを確認:
uname -r
検出を再度実行:
bash check.sh
モジュールのブラックリストを検証:
cat /etc/modprobe.d/cve-2026-31431-disable-algif-aead.conf
これらのスクリプトは、防御的なセキュリティおよびシステム管理目的のみで提供されています。
エクスプロイトコードは含まれていません。
常に:
自己責任で使用してください。
MITライセンス
NVD CVEエントリ https://nvd.nist.gov/vuln/detail/CVE-2026-31431
Linuxカーネル修正コミット https://git.kernel.org/linus/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5
Ubuntuセキュリティ通知 https://ubuntu.com/security
Debianセキュリティトラッカー https://security-tracker.debian.org/