CVE-2025-49844とは?
2025年10月3日、CVE-2025-49844が公開され、広く利用されているオープンソースのインメモリデータストアであるRedisにおける重大なリモートコード実行の脆弱性が説明されました。CVSSスコアは10.0で、この問題は非常に深刻であり、迅速に対処する必要があります。
CVE-2025-49844は、Redisのソースコードに約13年間存在していたuse-after-free(解放後使用)によるメモリ破損バグです。認証済みユーザーが、特別に細工したLuaスクリプトを用いてガベージコレクタを操作し、use-after-free状態を引き起こし、最終的にリモートコード実行を達成できる可能性があります。デフォルトではRedisは認証が有効になっておらず、その結果、多くの開発者がデプロイ時に認証を有効化していません。
この脆弱性はWizのセキュリティ研究者によって発見され、2025年5月のPwn2Own Berlinを通じて報告され、「RediShell」と名付けられました。Redisは2025年10月3日にパッチを公開しました。
本稿公開時点では、エクスプロイトコードは公開されていません。しかし、概念実証(PoC)ツールは成功実行に向けて進展しています。
影響を受けるのは誰ですか?
CVE-2025-49844は、Luaスクリプティング機能を含むすべてのRedisバージョンに影響します。
修正済みRedis OSS/CE/Stackバージョン:
- 8.2.2以上
- 8.0.4以上
- 7.4.6以上(Stack:7.4.0-v7以上)
- 7.2.11以上(Stack:7.2.0-v19以上)
- 6.2.20以上
修正済みRedis Software(Enterprise)バージョン:
- 7.22.2-12以上
- 7.8.6-207以上
- 7.4.6-272以上
- 7.2.4-138以上
- 6.4.2-131以上
Redis Cloudのお客様は自動的にパッチが適用されており、対応は不要です。
RediShellはどのように動作しますか?
RediShellは、RedisのLuaスクリプティングサブシステムにおけるガベージコレクション中のオブジェクト生存性の検証不足を悪用します。LuaスクリプティングはRedisでデフォルト有効であり、機能拡張のために一般的に使用されています。
この攻撃により、認証済みユーザーが悪意のあるLuaスクリプトを送信し、RedisのLuaインタプリタのサンドボックス外で任意のコードを実行できるようになり、結果として基盤ホストへの不正アクセスが可能になります。技術的な仕組みは次のとおりです:
- メモリ破損:細工されたLuaスクリプトがガベージコレクタを操作し、アクティブなオブジェクトから参照されているにもかかわらずメモリを解放します。
- サンドボックス回避:use-after-free状態により、Luaサンドボックス外でのコード実行が可能になります。
- ホストアクセス:攻撃者はRedisホストシステム上でネイティブコード実行を獲得します。
Redisホストが侵害されると、攻撃者は認証情報の窃取、マルウェアの展開、Redisからの機密データの抽出、他システムへのラテラルムーブメント、または盗んだ情報を用いたクラウドサービスへのアクセス獲得などを行う可能性があります。
RediShellはどのように検知しますか?
Sysdig Secureでは、ユーザーはThreat Intelligence Feed内の「RediShell Detection」を活用し、環境内のRedisが脆弱なバージョンかどうかを自動的にクエリできます。
また、Sysdigの脆弱性管理を利用してCVE-2025-49844を追跡し、Sysdig Sage™でガイド付きの修復を行うこともできます。
緩和策
直ちに行うべき対応:
- 管理者は直ちにアップグレードするか、アクセス制御リスト(ACL)を使用してEVALおよびEVALSHAコマンドファミリーを制限することで一時的な緩和策を適用してください。
- 脆弱なインスタンスがインターネットに公開されていないことを確認してください。
- インターネットに公開されているインスタンスへのパッチ適用を最優先してください。
セキュリティのベストプラクティス:
- ファイアウォールやネットワークポリシーでネットワークアクセスを制限し、信頼できる送信元からのアクセスに限定してください。
- Redisインスタンスへのすべてのアクセスに強力な認証を強制し、protected-modeが有効になっていることを確認してください。
- 侵害時の影響範囲を抑えるため、Redisはroot以外のユーザーアカウントで実行してください。
- アプリケーション機能に不要であればLuaスクリプティングを無効化してください。
- ラテラルムーブメントを防ぐためにネットワークセグメンテーションを実装してください。
- Redisインスタンスをパブリックインターネットに公開することは完全に避けてください。
翻訳元: https://www.sysdig.com/blog/cve-2025-49844-redishell
