fix-react2shell-next — React 2 Shell (CVE-2025-66478) 修正ツール

Security

概要

fix-react2shell-next は、Next.js や React Server Components(RSC)を使ったアプリケーション群に影響する重大脆弱性「React 2 Shell RCE(CVE-2025-66478)」をワンコマンドで対処するための CLI ツールです。リポジトリは軽量な JavaScript ベースのツールチェーンで構成され、npx fix-react2shell-next の一行で実行できます。モノレポを想定して全ての package.json を再帰的に走査し、脆弱なパッケージ(next、react-server-dom-* など)を検出、公式アドバイザリに基づいた決定論的なバージョンアップを提案・適用します。開発者が手動で依存関係を追いかける負担を減らし、緊急対応のミスを減らすことを目的としています。

GitHub

リポジトリの統計情報

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

主な特徴

  • モノレポ対応で再帰的に package.json を走査し脆弱性の有無を判定
  • Next.js / React Server Components 関連パッケージ(例: next, react-server-dom-webpack など)の脆弱バージョンを検出
  • 公式アドバイザリに基づく決定論的(deterministic)なバージョン上げを実行
  • npx によるワンライナー実行で即時対応が可能

技術的なポイント

fix-react2shell-next は CLI ツールとしてのシンプルさと自動化を両立しています。技術的には、ファイルシステムを横断して package.json を再帰的に探索する機能を持ち、モノレポ構成(workspaces)にも対応できる設計が特徴です。検出対象は README に列挙されているように next や react-server-dom-* 系など、CVE-2025-66478 に関連するパッケージ群で、各 package.json 内の依存バージョンを解析して脆弱なレンジに該当するかを判定します。

脆弱性の修正方法は「決定論的なバージョンアップ」で、公式のアドバイザリで推奨されるパッチ済みバージョンへ一律に更新する手法を取ります。これにより、各環境で異なる解決結果が出ることを抑え、再現可能な修正を行える点がメリットです。実装上は package.json の書き換えを行い、必要に応じてユーザーにパッケージマネージャ(npm / yarn / pnpm)でのインストール再実行を促すワークフローが想定されます。

注意点としては、lockfile(package-lock.json / yarn.lock / pnpm-lock.yaml)やパッケージの peerDependencies、カスタム解決ルールがある環境では、単純な package.json 書き換えだけでは完全な解決にならない可能性があることです。したがって本ツールは脆弱な依存を特定・更新する「第一段階」の自動化を提供し、最終的な依存解決やビルド検証は開発者側で行うことが前提となります。セキュリティ運用の実務では、CI 上でのテストやステージングでの検証を必ず実施してください。

また、ツールが小規模であるため、事後の変更履歴把握や差分管理が重要です。Git のコミットや PR を自動で作る仕組みが無い場合は、修正後の差分を手動で確認し、CI を通して脆弱性修正の影響を検証することを推奨します。CLI による即時実行性と、公式アドバイザリ準拠の deterministic bump を組み合わせることで、緊急対応のスピードと一貫性を確保する設計になっています。

プロジェクトの構成

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

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • bin: dir
  • cli.gif: file

…他 3 ファイル

まとめ

CVE-2025-66478 対策を素早く自動化する実用的な CLI ツール。

リポジトリ情報:

READMEの抜粋:

fix-react2shell-next

fix-react2shell-next

One command to fix CVE-2025-66478 (React 2 Shell RCE) in your Next.js / React RSC app.

npx fix-react2shell-next

Deterministic version bumps per the official advisories.

What it does

  1. Recursively scans all package.json files (handles monorepos)
  2. Checks for vulnerable versions of:
    • next
    • react-server-dom-webpack
    • react-server-dom-parcel
    • `…