CVE-2025-49844 を理解する:”RediShell” Redis における重大なリモートコード実行の脆弱性

デモを依頼
By 清水 孝郎 - OCTOBER 7, 2025

SHARE:

本文の内容は、2025年10月7日に Sysdig Threat Research Team が投稿したブログ(https://www.sysdig.com/blog/cve-2025-49844-redishell/ )を元に日本語に翻訳・再構成した内容となっております。

CVE-2025-49844とは?

2025年10月3日、CVE-2025-49844が公開されました。これは、広く利用されているオープンソースのインメモリデータストアであるRedisにおける、重大なリモートコード実行の脆弱性を説明しています。CVSSスコアは10.0であり、この問題は非常に深刻であるため、迅速な対処が必要です。

CVE-2025-49844は、Redisのソースコードに約13年前から存在するメモリ使用後の破損に関するバグです。認証されたユーザーが細工されたLuaスクリプトを使用してガベージコレクタを操作し、メモリ使用後の状態を引き起こし、リモートコード実行につながる可能性があります。Redisはデフォルトで認証が有効になっていないため、多くの開発者がデプロイメントにおいて認証を有効にしていません。

この脆弱性はWizのセキュリティリサーチャーによって発見され、2025年5月にPwn2Own Berlinを通じて報告され、「RediShell」と名付けられました。Redisは2025年10月3日にパッチを公開しました。

本稿執筆時点では、エクスプロイトコードは公開されていません。しかし、概念実証ツールは実行成功に向けて着実に進歩しています。

誰が影響を受けるのでしょうか?

CVE-2025-49844 は、Lua スクリプト サポートを含むすべての Redis バージョンに影響します。

修正された Redis OSS/CE/Stack バージョン:

  • 8.2.2以上
  • 8.0.4以上
  • 7.4.6 以上 (スタック: 7.4.0-v7 以上)
  • 7.2.11 以上 (スタック: 7.2.0-v19 以上)
  • 6.2.20以上

修正された Redis ソフトウェア (エンタープライズ) バージョン:

  • 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 スクリプトは、ガベージ コレクターを操作して、アクティブなオブジェクトによってまだ参照されているメモリを解放します。
  • サンドボックス エスケープ: 解放後使用条件により、Lua サンドボックス外でのコード実行が可能になります。
  • ホスト アクセス: 攻撃者は Redis ホスト システム上でネイティブ コードを実行できます。

Redis ホストを侵害した後、攻撃者は認証情報を盗み、マルウェアをデプロイし、Redis から機密データを抽出し、他のシステムに横移動し、盗んだ情報を使用してクラウド サービスにアクセスすることができます。

RediShell をどのように検知しますか?

Sysdig Secure を使用すると、ユーザーは脅威インテリジェンスフィードの“RediShell Detection”  を活用して、環境内で Redis の脆弱性バージョンを自動的に照会できます。

ユーザーは、Sysdig 脆弱性管理を利用して CVE-2025-49844 を追跡したり、Sysdig Sage™ を利用してガイド付きの修復を行ったりすることもできます。

緩和策

即時の行動:

  • 管理者は、すぐにアップグレードするか、アクセス制御リスト (ACL) を使用して EVAL および EVALSHA コマンドファミリーを制限することで一時的な緩和策を適用する必要があります。
  • 脆弱なインスタンスがインターネットに公開されていないことを確認します。
  • インターネットに公開されているインスタンスへのパッチ適用を優先します。

セキュリティのベストプラクティス:

  • ファイアウォールとネットワーク ポリシーを使用してネットワーク アクセスを制限し、信頼できるソースへのアクセスを制限します。
  • Redis インスタンスへのすべてのアクセスに対して強力な認証を適用し、保護モードが有効になっていることを確認します。
  • 潜在的な侵害の影響範囲を制限するために、Redis を非ルート ユーザー アカウントで実行します。
  • アプリケーションの機能に必要ない場合には、Lua スクリプトを無効にします。
  • 横方向の移動を防ぐためにネットワーク セグメンテーションを実装します。
  • Redis インスタンスをパブリック インターネットに完全に公開することは避けてください。

参考文献