5月7日、Cloudflareが「How Cloudflare responded to the "Copy Fail" Linux vulnerability」と題した記事を公開した。この記事では、Linux kernel重大脆弱性「Copy Fail」に対するCloudflareの対応と技術的詳細について詳しく紹介されている。以下に、その内容を紹介する。
Copy Failとは何か
Copy Fail(CVE-2026-31431)は、2026年4月29日に公開されたLinux kernelのローカル権限昇格脆弱性である。この脆弱性は、unprivilegedユーザーがroot権限を取得できる深刻な問題だった。
脆弱性の核心は、kernelの暗号APIにある。LinuxではAF_ALGソケットファミリーを通じて、unprivilegedプロセスが暗号化・復号化処理を要求できる。この仕組みのalgif_aeadモジュールに、4バイトの境界外書き込みを引き起こすバグが存在していた。
scatterwalk_map_and_copy(tmp + 1, dst, assoclen + cryptlen, 4, 1);
攻撃者はこのバグを悪用し、以下の手順でroot権限を奪取する:
/usr/bin/su(setuid-rootバイナリ)をread-onlyで開き、page cacheに読み込むAF_ALGソケットを作成し、authencesn(hmac(sha256),cbc(aes))にバインドsplice()システムコールでバイナリをcryptoのscatterlistに連鎖sendmsg()でシェルコードを含むAADバイトを送信recvmsg()で復号化を実行すると、境界外書き込みによりpage cache内の/usr/bin/suが汚染される- その後
execve("/usr/bin/su")を実行すると、改ざんされたバイナリがroot権限で動作
Cloudflareの迅速な対応
Cloudflareは330都市に展開する大規模なLinuxサーバーインフラを運用している。同社のインシデント対応は以下のタイムラインで進行した:
| 時刻 | 出来事 |
|---|---|
| 4月29日 16:00 | Copy Fail公開 |
| 4月29日 22:52 | 既存の行動検知システムがexploitパターンを数分で検知することを確認 |
| 4月30日 03:14 | セキュリティインシデント宣言 |
| 4月30日 14:25 | エンジニアリングインシデント宣言 |
| 4月30日夕方 | bpf-lsm緩和プログラムを全fleet展開完了 |
注目すべきは、シグネチャ更新もルール変更も人的介入もなしに、既存の行動検知システムがexploitを自動検知したことだ。同システムはプロセス実行パターンを継続監視し、fleet全体の行動パターンに基づいて異常を判定している。
技術的な緩和手法
単純にはなぜmolduleオリアムことができ、推奨され方法でもある:
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true
しかし、これではkernel crypto APIを使用するソフトウェアに影響が出るため、Cloudflareはより外科的な緩和策を選択した。最終的に、リブートを必要としないbpf-lsm緩和プログラムを開発・展開し、パッチ適用されたkernelの展開完了まで環境を保護した。
完全な脅威ハンティング
Cloudflareセキュリティチームは「compromise前提で調査せよ」の原則に従い、脆弱性公開前48時間のログを全面調査した。調査内容は:
- kernel logでのexploit痕跡の検索
- 影響システムのアクセスログ再構築
- システムバイナリの改ざんチェック
- 暗号化ハッシュの既知パッケージとの照合
- 不審なネットワーク接続の監査
結果、悪意のある活動は一切発見されなかった。
同社は「顧客への影響はゼロ、顧客データは危険にさらされず、サービス中断も発生しなかった」と明確に述べている。これは、定期的なkernel更新プロセスと行動ベースの検知システムが功を奏した結果だ。
詳細はHow Cloudflare responded to the "Copy Fail" Linux vulnerabilityを参照していただきたい。