
CVE-2025-32023 のエクスプロイト
Redis HyperLogLog 操作におけるリモートコード実行
CVE-2025-32023 は、Redis データベースにおける リモートコード実行 (RCE) の脆弱性であり、特に HyperLogLog データ構造操作の処理に影響を与えます。この欠陥により、認証済みユーザーが細工された文字列を送信することで、スタックまたはヒープベースの領域外書き込みを引き起こし、サーバー上で任意のコード実行につながる可能性があります。この脆弱性は、スパース HyperLogLog エンコーディングの処理における整数オーバーフローに起因します。GitHub, Inc. によって報告され(具体的な発見者は非公開)、Redis バージョン 2.8 以降に存在しています。
認証済みの攻撃者は、脆弱性のある Redis インスタンスにアクセスできる場合、この脆弱性を悪用してサーバー上で任意のコードを実行し、システム全体を危険にさらす可能性があります。これにより、機密データへの不正アクセス、永続的なバックドアのインストール、サービスの妨害が発生する可能性があります。この脆弱性は、Redis が高性能キャッシュやデータ処理に使用される環境では特に重大であり、重要なインフラストラクチャが攻撃にさらされる可能性があります。
このリポジトリには、CVE-2025-32023 用のエクスプロイトスクリプトが含まれています。以下のプレースホルダーコマンドを、スクリプトを実行するための具体的な指示に置き換えてください。
# Example usage (replace with actual commands for your script):
git clone https://github.com/atomicjjbod/CVE-2025-32023.git
cd CVE-2025-32023
chmod +x exploit
./exploit --host <redis_host> --port <redis_port>
注記: 必要な依存関係(例: Python、Redis クライアントライブラリ)がインストールされていることを確認してください。意図しない結果を避けるため、管理された環境でエクスプロイトをテストしてください。
PFADD、PFCOUNT、PFMERGE)の実行をブロックしてください。ACL 設定の例:
ACL SETUSER username -~pf*
この脆弱性は、スパース HyperLogLog エンコーディングの処理における整数オーバーフローに起因します。具体的には、スパース HyperLogLog データを反復処理する際、長さカウンター(int i)が不正な入力により負の値にオーバーフローし、スタックまたはヒープ上の領域外書き込みを引き起こす可能性があります。これは、コンテキストに応じてメモリを破壊し任意のコードを実行するために悪用される可能性があります(例: hllMerge はスタック割り当て構造を使用し、hllSparseToDense はヒープ割り当て構造を使用します)。
この問題は Redis において、境界チェックの追加と HyperLogLog 操作における長さカウンターの処理の修正により解決されました。修正は次のコミットに含まれています: Redis Commit 50188747。
2025年7月10日現在、CVE-2025-32023 の広範囲にわたる悪用は実環境では報告されていません。ただし、公開された概念実証コードが利用可能であり、標的型攻撃のリスクが高まっています。Redis ユーザーは、速やかにパッチを適用し、推奨される対策を実装してシステムを保護することが強く推奨されます。