
CVE-2025-49844を標的としたRedisのヒープ脆弱性の概念実証エクスプロイト。GDBを用いたクラッシュ解析とコード実行を目指したファジング試行を伴う。
AI 製のリバースシェル PoC
AI によって作られた Redishell PoC の未検証の完成版。
元の PoC:
https://github.com/raminfp/redis_exploit/blob/main/exploit_poc.py
韓国人のピース:
https://github.com/dwisiswant0/CVE-2025-49844/blob/master/CVE-2025-49844.lua
その後、GDB を組み込んでベースアドレスを取得し、さらにいくつかのことを突き止めましたが、そのほとんどは、これが単純なヒープ脆弱性ではないことを示しています。どのような試みをしても、コード実行を達成することは不可能でした。クラッシュは起こせます。コマンド実行はできません。
私たちはもうリバースエンジニアリングに確固たる自信を持っていないため、確実なことは言えませんが、いくつかの最強の AI モデルの助けを借りて何時間も調査した結果、この脆弱性を通じてコード実行を達成することは不可能(または千回に一回の偶然に過ぎないが、それは純粋な推測に過ぎない)であるという結論に至りました。
数多くの試みの末、私たちはせいぜい以下のような結果にしか到達しませんでした:
Script attempted to access nonexistent global variable 'print' script: 67dfac1cecac4f99df897c7a0713f1d6fcef69a4, on @user_script:21.
コード実行を伴う実際の PoC を見るのが楽しみです。
よく読んでください: 私たちが言っているのは、現時点で知っている/見た限りでは、ということです。これは絶対的な主張ではありません。まだ考慮していないトリックやお菓子があるかもしれません。はるかに優れたバイナリエクスプロイトの専門家はたくさんいます。
注意: Redis サーバーは安定したままでした。テストのために Docker から取り出しました。エクスプロイトを数千回発射することでクラッシュを誘発できますが、このブルートフォース手法をコード実行の試みと組み合わせる試みはまだ行っていません。それが解決策かもしれません。

ご覧の通り、元の PoC も同じ問題に悩まされているようです。「簡略化された」と主張していますが、結果が何であるべきかは完全には明確ではありません。
まだ何も...
$ while redis-cli -h localhost -p 6380 --eval korean.lua; do printf '.'; done
不思議なことに、Redis のパッチノートには、全く別の CVE が記載されています。これもバイナリエクスプロイトとされていますが、より単純なスタックベースのバッファオーバーフローで、RCE が可能とされています:
XACKDEL のバグによりスタックオーバーフローが発生し、RCE の可能性これに関する情報はさらに少ないです。自己コンパイルせずに非バックポート版を見つけるのはすでに困難ですが、それが私たちが取るべきルートかもしれません。
これらの「可能性」ばかり – 私にも可能性はあります。今は 2 つの可能性があります。
62507 が正しい道です... まだ RCE はありませんが、簡単で有望そうです...
では、CVE-2025-49844 は単なる偽装だったのでしょうか?韓国人のパズルはまだクラッシュを生み出していませんが、自己コンパイルした 8.2.2 に対しては全く異なる出力を生成します。認めざるを得ませんが、私も「うん、クラッシュ、あり得るし、簡単そうだ...」と考えて、CVE-2025-49844 のクラッシュ部分が機能すると思い込んでいました。しかし、それは決して起こりませんでした。以前間違ったことを言って申し訳ありませんが、今ははっきりしました。願わくば、CVE-2025-49844 はクラッシュせず、CVE-2025-62507 はクラッシュします。
.(error) ERR user_script:16: Script attempted to access nonexistent global variable 'newproxy' script: 859491190bfb66357ec83aee16eb0554967c9c38, on @user_script:16.
見覚えがありますか?彼らがそこで何をしたのかはわかりません... あるいは、私以外に誰も確認しなかったのでしょうか?最近、世界はかなり奇妙な場所になっています。