React2Shell CVE-2025-55182 オリジナルPoC

Security

概要

このリポジトリは、React2Shell に影響する CVE-2025-55182 の「オリジナル」Proof‑of‑Concept(PoC)をまとめたものです。作者は最初に開発した PoC を公開し、公開済みの変種やスキャナによる検出用 PoC の元ネタとしての位置付けを明示しています。含まれる PoC は主に Next.js の開発ビルドや特定の環境で直接 RCE を誘発するもの、提出用に整えたもの、さらに別パッケージ(meow)を利用した応用的な PoC が含まれます。研究者や運用者が脆弱性の再現・対策検討を行うための資料として有用ですが、実行は慎重に行う必要があります。

GitHub

リポジトリの統計情報

  • スター数: 83
  • フォーク数: 3
  • ウォッチャー数: 83
  • コミット数: 5
  • ファイル数: 4
  • メインの言語: JavaScript

主な特徴

  • React2Shell の RCE を再現するための複数 PoC を収録(初期版・提出版・別パッケージ版)。
  • Next.js の開発ビルドや特定の実行経路で動作する典型的な攻撃チェーンを提示。
  • 実行例を通じて検出ルールや緩和策の検討が可能。
  • 責任ある公開を前提としたオリジナル PoC の共有(悪用防止のため注意喚起あり)。

技術的なポイント

このリポジトリが示す技術的な要点は、React2Shell を介した入力→評価→コマンド実行までのパスを明示している点にあります。一般的に RCE を達成するためには、外部入力が信頼されない形で評価(eval や Function 生成、テンプレートエンジンの危険な展開等)され、そこからシェルコマンドや子プロセス生成へ到達する「攻撃サーフェス」が必要です。React2Shell のケースでは、ライブラリやフレームワークのデバッグ/開発用コードや、想定外の文字列処理が組み合わさることで、このサーフェスが露出しました。

リポジトリに含まれる 00-very-first-rce-poc は、最初に作者が作成した極めて単純な実演用 PoC で、Next.js の dev モード(開発ビルド)が持つホットリロードや動的評価の仕組みを悪用して直接 RCE を発生させます。これはプロダクションビルドでは直ちに再現しないケースがあることを示し、開発環境特有の危険性を強調しています。

01-submitted-poc.js は、脆弱性報告時に提出された PoC を整形したバージョンで、より一般的なトリガーと安定した実行パスを提供します。スキャナや自動化検査が取り扱いやすい形での再現を意識しており、検出ルール(IDS/IPS、SAST)や脆弱性スキャナのシグネチャ設計に役立ちます。

02-meow-rce-poc は、別ライブラリ(meow など)のパーサやオプション処理経由で同様の評価チェーンを構築するバリエーションで、依存関係の連鎖(supply‑chain)を経由した攻撃可能性を示します。これにより、脆弱性が単一ライブラリだけでなく、別パッケージの想定しない相互作用によって拡大することを理解できます。

技術的な対策としては次の点が重要です:テンプレートや動的評価の使用を最小化し、ユーザー入力を直接評価に渡さないこと;開発用コードや debug フラグを本番で有効にしないこと;依存関係を最小化し、更新を迅速に適用すること;実行環境での権限制御(非特権ユーザでの実行、コンテナの isolation)を徹底すること。さらに、PoC の挙動をログ・検出ルールとして落とし込み、疑わしいプロセス生成や異常な eval 呼び出しを検出する監視体制の整備も重要です。

また、責任開示の観点では作者が自らのオリジナル PoC を公開することで、既に流通している変種の出どころを明らかにし、脆弱性の再現性と修正の妥当性を確認しやすくしています。研究者や運用者はこれらの PoC を利用して影響範囲の評価、パッチの検証、検出シグネチャの作成を行えますが、実環境での実行は絶対に避け、隔離環境で動作確認を行ってください。

プロジェクトの構成

主要なファイルとディレクトリ:

  • 00-very-first-rce-poc: file
    • 最初期のシンプルな RCE PoC。Next.js の開発ビルドで直接動作する簡易的なサンプルコードを含む。
  • 01-submitted-poc.js: file
    • 報告時に提出した整形済みの PoC。自動検出ツールや第三者検証に向けて安定性を考慮した実装になっている。
  • 02-meow-rce-poc: file
    • meow 等の別パッケージを経由したバリエーション PoC。依存関係を介した実行チェーンの再現を目的とする。
  • README.md: file
    • リポジトリの説明、背景、PoC の意図と注意点、責任ある公開に関するメッセージが記載されている。

各 PoC は短く明解に作られており、実行や再現のための前提(Node.js バージョン、Next.js の dev モード等)に関する注意が README にまとめられています。コードは教育目的・検証目的で提供されており、そのまま本番に適用するものではありません。

まとめ

React2Shell の挙動を追う上で貴重なオリジナル PoC 集。検証と対策検討に有用。

リポジトリ情報:

READMEの抜粋:

Original PoCs for CVE-2025-55182

As public PoCs are circulating and Google’s Scanner uses a variation of my original submitted PoC, it’s finally a responsible time to share my original PoCs for React2Shell.

This repository contains 3 PoCs:

  • 00-very-first-rce-poc - the very first PoC I managed to develop for RCE. Only directly works on dev builds of Next…