eBPF で再起動なしにカーネル脆弱性を緩和する(Copy Fail / CVE-2026-31431)
カーネルパッチ適用(再起動)までのつなぎとして、脆弱な機能へのアクセスを eBPF プログラムでブロックする。Kubernetes では DaemonSet で全ノードに配る。
背景
- Copy Fail(CVE-2026-31431)は Linux カーネルの AF_ALG(カーネル暗号 API のソケット)の AEAD 周りの脆弱性で、EC2 上の Ubuntu 22.04 での実証記事も出ている。
手順(OpenShift の中の人による非公式実装)
- AF_ALG AEAD ソケットの
bindをブロックする eBPF プログラム(LSM フック等)を用意する。 - DaemonSet として全ノードにデプロイし、各ノードでロードする。
sh
kubectl apply -f daemonset.yaml - パッチ済みカーネルに更新・再起動したら DaemonSet を削除する。
応用
- 「使っていないカーネル機能を eBPF / seccomp で塞ぐ」は他の脆弱性でも使える緩和パターン。AF_ALG を使うアプリがないか事前に確認する(暗号処理を AF_ALG にオフロードする一部ソフトは壊れる)。
注意点
- 非公式実装。本番適用前に検証環境で影響確認を。根本対策はカーネル更新。
- Red Hat 製品の該当情報(Dirty Frag CVE-2026-43284 など)はベンダーのセキュリティ情報を参照。
出典
- @orimanabu · 2026-05-05
- @yousukezan · 2026-04-30 (EC2 での実証記事)