AIツールが発見したRedisの重大なRCE (CVE-2026-23479) - 緊急パッチ適用を推奨
「use-after-free」の深刻な脆弱性である**CVE-2026-23479**が**Redis**で発見され、認証された攻撃者が任意のOSコマンドを実行できるようになります。バージョン7.2.0以降に存在するこの脆弱性は、自律的なAIセキュリティツールによって独自に特定されたもので、特に堅牢な認証が欠如しているクラウドデプロイメントに大きなリスクをもたらします。
### AIが発見したRCE、Redisデプロイメントを脅かす
人気のオープンソースインメモリデータストアである**Redis**で、リモートコード実行(RCE)の重大な脆弱性、**CVE-2026-23479**が修正されました。このuse-after-freeの脆弱性により、認証された攻撃者はデータベースをホストするマシン上で任意のオペレーティングシステムコマンドを実行でき、影響を受けるシステムに重大なセキュリティリスクをもたらします。
この脆弱性は、**Theori**が開発した自律AIセキュリティツールである**Xint Code**によって独自に発見され、**Team Xint Code**によって報告されました。これは、AIが大規模なコードベースにおける複雑なバグの特定にますます役割を果たしている、脆弱性研究の進化する状況を浮き彫りにしています。

### 脆弱性の解説:CVE-2026-23479
use-after-freeバグは、`src/blocked.c`内の`unblockClientOnKey()`関数に存在し、キーイベントがブロックされたコマンドをウェイクアップする際にトリガーされます。この関数は`processCommandAndResetClient()`を介してキューに入れられたコマンドをディスパッチします。しかし、`processCommandAndResetClient()`は副作用として、受け取ったクライアントポインタを解放する可能性があります。その後、`unblockClientOnKey()`の呼び出し元は、この解放されたクライアントポインタを引き続き使用し、古典的なuse-after-free(CWE-416)の状態を引き起こします。
この脆弱性は**Redis** 7.2.0で導入され、5月5日に修正されるまですべての安定版ブランチに存在し、2年以上見過ごされていました。国立脆弱性データベース(NVD)はCVSS 3.1で8.8、**Redis**自体はCVSS 4.0で7.7と評価しています。詳細な技術的解説は**Wiz**によって公開されています。
### エクスプロイトの展開方法
**Wiz**のZeroDay.Cloud 2025コンペティションで**Team Xint Code**によって実証されたエクスプロイトチェーンは洗練されており、いくつかの段階を含みます。
1. **ヒープアドレスリーク**: Luaスクリプト1行(`EVAL "return tostring(redis.call)" 0`)を使用してヒープポインタをリークします。
2. **メモリグルーミングと偽クライアントの注入**: 攻撃者はクライアントメモリ制限を操作し、大きなクライアントをストリームに配置してから制限を減らし、ウェイクアップさせます。これにより、**Redis**は呼び出し中にブロックされたクライアントを解放します。パイプライン化された`SET`コマンドは、細工された偽クライアント構造で解放されたメモリ領域をすぐに再利用します。
3. **関数ポインタの上書き**: **Redis**の`updateClientAccount()`におけるルーチンメモリアカウンティングが利用され、攻撃者が制御するフィールドを使用して境界外デクリメントを実行します。これにより、グローバルオフセットテーブル(GOT)をターゲットにして`strcasecmp()`関数ポインタを`system()`にリダイレクトします。次に**Redis**が解析するコマンドは、シェルコマンドとして実行されます。
デフォルトの**Redis Docker**イメージは、RELROが部分的にしか適用されていないため、実行時にGOTが書き込み可能であり、最終段階をさらに簡素化します。
### 前提条件とクラウドでの露出
**CVE-2026-23479**を悪用するには、特定のACLカテゴリ(`@admin`、`CONFIG SET`、`EVAL`、ストリームコマンド(`XREAD`/`XADD`)、および基本的な`SET`/`GET`)を持つ認証済みセッションが必要です。これらは制限が厳しいように見えるかもしれませんが、多くのデフォルトの**Redis**デプロイメントでは、デフォルトユーザーがこれらの権限をすべて持っています。
**Wiz**の分析は、重大な懸念を強調しています。クラウド環境の**Redis**インスタンスの大部分は、パスワードなしで実行されています。この広範な設定は攻撃対象領域を劇的に増加させ、攻撃者は**Redis**インスタンスへの初期アクセスを取得するだけでRCEを達成できる可能性があります。

### 緊急対応:パッチ適用と緩和策
**Redis**はこの脆弱性に対するパッチをリリースしており、即時のアップグレードを強く推奨します。影響を受けるブランチと対応する修正バージョンは以下の通りです。
| ブランチ | 影響を受けるバージョン | 修正バージョン |
| :----- | :------------------ | :------------ |
| 7.2.x | 7.2.0 から 7.2.13 | 7.2.14 |
| 7.4.x | 7.4.0 から 7.4.8 | 7.4.9 |
| 8.2.x | 8.2.0 から 8.2.5 | 8.2.6 |
| 8.4.x | 8.4.0 から 8.4.2 | 8.4.3 |
| 8.6.x | 8.6.0 から 8.6.2 | 8.6.3 |
マイナーアップグレードは、シリーズ内ではドロップインリプレースメントとして設計されています。マネージド**Redis**サービスは独自のスケジュールでパッチを展開しており、**Redis Cloud**はすでに更新されています。
即時のパッチ適用が不可能な場合は、以下の緩和策を実装してください。
* **ネットワークセグメンテーション**: **Redis**インスタンスをパブリックインターネットから隔離し、堅牢なファイアウォールで保護してください。
* **TLS暗号化**: すべての**Redis**通信がTLSで保護されていることを確認してください。
* **厳格なACL**: `@admin`、`CONFIG`、および`@scripting`の権限を同時に持つ単一のロールを防ぐために、アクセス制御リスト(ACL)を強化してください。
* **Luaスクリプティングの無効化**: アクティブに使用されていない場合は、ステージ1のヒープリークを防ぐ`@scripting` ACLカテゴリを拒否してください。
* **認証情報ローテーション**: 広範に共有されている**Redis**の認証情報をローテーションしてください。
インターネットに公開されているインスタンス、共有アプリケーション認証情報を持つインスタンス、および`CONFIG`、スクリプティング、ストリームアクセスを組み合わせたロールのパッチ適用と緩和策を優先してください。
### より広範な文脈
**CVE-2026-23479**は、先月開示された5つのRCEクラスの**Redis**脆弱性の1つであり、2025年の**RediShell**脆弱性(Luaスクリプティングを伴う別の認証済みuse-after-free)に続いています。従来のコードレビューではなくAIツールがこの長年の脆弱性を特定したという事実は、重要なソフトウェアにおける継続的なセキュリティイノベーションと堅牢なテスト手法の必要性を強調しています。現時点では、実際の攻撃の公的な証拠はありませんが、完全な技術的詳細が公開されたことにより、リスクが大幅に増加しています。