ホーム > サポート > セキュリティリスク対策特設ページ > Linuxカーネル脆弱性(CVE-2026-31431)の対処方法

Linuxカーネル脆弱性(CVE-2026-31431)の対処方法

Linuxカーネルの暗号化機能を利用するAPI(AF_ALG)において、ローカル特権昇格の脆弱性(CVE-2026-31431)が発見されました。本脆弱性は、非特権のローカルユーザーがroot権限を取得可能な極めて深刻な問題です。2026年4月29日に公開された本脆弱性について、弊社サーバ製品の対応状況と対処方法をご案内いたします。
詳細については以下URLをご確認ください。

脆弱性の概要

Linuxカーネルの暗号ソケットインターフェース(algif_aead)において、in-place操作の設計不備により、非特権ユーザーが任意のファイルのページキャッシュを4バイト書き換え可能な脆弱性が存在します。この脆弱性を悪用することで、setuidバイナリのページキャッシュを改ざんし、root権限を取得することができます。

  • CVE番号: CVE-2026-31431
  • 深刻度: CVSS v3.1 スコア 7.8(High)
  • 攻撃条件: ローカルユーザーアクセスが必要(リモート攻撃不可)
  • 影響: ローカル特権昇格、コンテナエスケープ
  • 影響期間: 2017年以降にリリースされたほぼ全てのLinuxディストリビューション

本脆弱性は、競合状態やカーネルバージョン依存のオフセット特定を必要としない直線的な論理バグであり、732バイトのPythonスクリプトで全ディストリビューションにおいて確実にroot権限を取得可能であることが実証されています。

対象となるカーネルバージョン

2017年のコミット(72548b093ee3)以降、修正コミット(a664bf3d603d)が適用されるまでの期間にビルドされたLinuxカーネルが対象となります。

弊社サーバ製品の対応状況(2026年4月30日現在)

Ubuntu LTS(20.04 / 22.04 / 24.04)

バージョン 対象カーネル パッチ済みカーネル 暫定対処 パッチ提供状況
24.04 LTS 6.8.0-110-generic以前 未リリース あり(モジュール無効化) 標準サポート内
22.04 LTS 5.15.0-176-generic以前 未リリース あり(モジュール無効化) 標準サポート内
20.04 LTS 5.4.0-228-generic以前 リリースされません あり(モジュール無効化) ESM期間(パッチ提供終了)

Ubuntuの全バージョンにおいて、algif_aeadはカーネルモジュール(CONFIG_CRYPTO_USER_API_AEAD=m)としてビルドされているため、modprobe.dによるモジュール無効化が可能です。

Ubuntu 20.04 LTSは2025年5月に標準サポートが終了し、現在はESM(Extended Security Maintenance)期間です。標準サポートでのカーネルパッチ提供は終了しており、根本的な対応にはUbuntu 24.04 LTS以降へのアップグレードを推奨します。

Red Hat Enterprise Linux 8 / 9

項目 状況
パッチ済みカーネル 未リリース
暫定対処 あり(ブートパラメータによるalgif_aead無効化・Red Hat公式緩和策)
Red Hat CVEステータス Affected

RHEL 8/9では、CONFIG_CRYPTO_USER_API_AEAD=y(カーネル組み込み)としてビルドされているため、modprobe.dによるモジュール無効化は機能しません。Red Hatが公開したブートパラメータによる緩和策が利用可能です(詳細は「対処方法」セクションを参照)。

修正提供対象外のバージョン(8.7、8.9等)をご利用の場合で、正式なパッチの適用を検討される必要がある方はOSのアップグレードが必要です。RHEL 8の場合は8.10への、RHEL 9の場合は9.6以降へのアップグレードを推奨します。

Red Hatの公式CVEページでは本脆弱性の暫定対処としてブートパラメータによる緩和策が公開されています(https://access.redhat.com/security/cve/cve-2026-31431)。パッチ済みカーネルのリリース状況はRed HatのErrataページ(https://access.redhat.com/errata/)で確認してください。

Red Hat Enterprise Linux 6 / 7

影響対象外(Not affected)です。カーネルにCONFIG_CRYPTO_USER_API_AEADが含まれていないため、脆弱性の前提となるコードパスが存在しません。

対処方法

Ubuntu LTS(20.04 / 22.04 / 24.04)の場合 — 暫定対処

パッチ済みカーネルがリリースされるまでの間、以下の手順でalgif_aeadモジュールを無効化することにより、脆弱性の悪用を防止できます。

(1)モジュール無効化設定の作成

 rootで計算機にログインし、以下のコマンドを実行してください。

# echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf

(2)現在ロードされているモジュールの削除

# rmmod algif_aead 2>/dev/null || true

(3)無効化の確認

 以下のコマンドを実行し、モジュールがロードされていないことを確認してください。

# lsmod | grep algif
# modprobe algif_aead
modprobe: ERROR: could not insert 'algif_aead': Operation not permitted

上記のようにエラーが返されれば、無効化は正常に機能しています。

(4)AF_ALGを使用するプロセスの確認

本暫定対処は、dm-crypt/LUKS、IPsec/XFRM、kTLS、OpenSSH、OpenSSL等のデフォルト設定には影響しません。AF_ALGを明示的に使用するプロセスが存在しないか、以下のコマンドで確認してください。

# lsof | grep AF_ALG

何も出力されなければ、暫定対処による影響はありません。

影響を受ける可能性のあるアプリケーション

OpenSSLのafalgエンジンを明示的に有効化している環境、またはAF_ALGソケットを直接バインドするアプリケーションでは、algif_aeadの無効化により影響を受ける可能性があります。該当する場合は、ユーザー空間の暗号ライブラリ(OpenSSLのデフォルトエンジン等)へのフォールバックが自動的に行われます。

Ubuntu LTS(22.04 / 24.04)の場合 — パッチ適用(リリース後)

Canonicalからパッチ済みカーネルがリリースされ次第、この章に加筆します。

Red Hat Enterprise Linux 8 / 9 の場合 — 暫定対処

RHELではalgif_aeadがカーネル組み込み(CONFIG_CRYPTO_USER_API_AEAD=y)であるため、Ubuntuのようなmodprobe.dによるモジュール無効化はできません。Red Hatが公式に公開したブートパラメータによる緩和策が利用可能です(https://access.redhat.com/security/cve/CVE-2026-31431)。

以下のいずれかのブートパラメータを追加することで、影響を受ける機能を無効化できます。

ブートパラメータ 効果 影響範囲
initcall_blacklist=algif_aead_init algif_aeadのみ無効化 最小限。AF_ALGの他機能(hash/skcipher/rng)は動作
initcall_blacklist=af_alg_init AF_ALGインターフェース全体を無効化 広範。AF_ALGを使用する全機能が動作不可
initcall_blacklist=crypto_authenc_esn_module_init authencesnアルゴリズムのみ無効化 最小限。脆弱性のトリガーとなるアルゴリズムのみブロック

推奨はinitcall_blacklist=algif_aead_initです。脆弱性の対象となるAEAD機能のみを無効化し、AF_ALGの他機能への影響を最小限に抑えます。

(1)ブートパラメータの追加

rootで計算機にログインし、grubbyコマンドを使用して全カーネルにブートパラメータを追加します。BIOS/UEFIの区別は不要です。

# grubby --update-kernel ALL --args="initcall_blacklist=algif_aead_init"

(2)シンボリックリンクの強制作成(ここはRed Hat Enterprise Linux 9では不要)

# cd /boot/grub2

# ln -sf ../efi/EFI/*/grubenv

* の箇所は OS 依存です(almalinux, redhat, rocky 等)。シンボリックリンクが正しく設置されていない場合、起動時に正常なパラメータで起動出来ない場合があります。

(3)grub.cfgの更新(ここはRed Hat Enterprise Linux 9では不要)

# grub2-mkconfig -o /boot/efi/EFI/*/grub.cfg

(4)再起動

# reboot

(5)確認

再起動後、ブートパラメータが反映されていることを確認します。

# cat /proc/cmdline | grep initcall_blacklist

また、AF_ALGのAEAD機能が無効化されていることを確認します。

# python3 -c "import socket; s=socket.socket(38,5,0); s.bind(('aead','authencesn(hmac(sha256),cbc(aes))'))" 2>&1

エラーが返されれば、AEAD機能は正常に無効化されています。


注意事項

  • カーネル暗号関数を使用する機能にパフォーマンスへの影響が出る可能性があります。
  • crypto_authenc_esn_module_initを指定する場合、IPsecのESN機能に影響する可能性があります。
  • パッチ対象外のバージョン(8.7、8.9等)を使用している場合は、8.10へのアップグレードを推奨。
  • RHEL 9.4を使用している場合は、9.6以降へのアップグレードを推奨。

Red Hat Enterprise Linux 8 / 9 の場合 — パッチ適用(リリース後)

Red Hatからパッチ済みカーネルがリリースされ次第、この章に加筆します。


注意事項

  • 本暫定対処および対処方法は、お客様の責任において実施してください。
  • 本件は弊社保証対象外とさせていただきます。
  • パッチのリリース状況は各ディストリビューターの公式情報をご確認ください。
  • 本情報は2026年4月30日現在の状況に基づいています。最新情報は各ディストリビューターのセキュリティアドバイザリをご参照ください。
Contact

お問い合わせ

お客様に最適な製品をご提案いたします。まずは気軽にお問い合わせ下さい。
03-5446-5532

平日9:30~17:30(土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)