
CVE-2025-55183 の PoC
このリポジトリには、Next.js React Server Components (RSC) / Server Actions におけるソースコード開示の脆弱性を検出するツールが含まれています。この脆弱性は CVE-2025-55183 として追跡されています。
脆弱なアプリケーションでは、Server Function に対する巧妙に細工された HTTP リクエストにより、参照が文字列化されたとき(例えば、テンプレートリテラルやデータベースクエリにおける暗黙的な型変換を介して)、サーバーがその関数の完全な JavaScript ソースコードを返す可能性があります。
React の修正では、サーバー参照に対して、実際の関数本体の代わりに定数のプレースホルダー文字列を返す toString() オーバーライドが追加されました。古いビルドを実行しているアプリケーションでは、サーバー参照が直接的または間接的に文字列化され、クライアントに反映されると、ソースコードが漏洩する可能性があります。
⚠️ 法的通知:
これらのツールは、自身が所有する、または明示的にテストを許可されたシステムに対するセキュリティテストおよび研究を目的としています。無許可のスキャンや悪用は違法となる可能性があります。
CVE-2025-55183.yaml_next/static/chunks/*.js ファイルを発見ID: CVE-2025-55183
コンポーネント: Next.js アプリケーションにおける React Server Components / Server Actions
影響: サーバーサイド JavaScript ソースコードの開示
根本原因:
サーバー参照(Server Functions)が toString() をオーバーライドしていませんでした。そのような参照が文字列に変換するコードに引数として渡された場合、その完全なソースコードがクライアントに返される可能性がありました(例えば、エラーパス、ログ記録、クエリ構築ロジックを介して)。
修正(アップストリーム):
React は現在、サーバー参照に定数のプレースホルダーを返す toString ディスクリプタをインストールしています。例:
function () { [omitted code] }
これにより、文字列化されても実際の関数本体が露出するのを防ぎます。
基礎となる React の変更の詳細については、以下を参照してください:
894bc73cb493487c48d57f4508e6278db58e673a