ペンリジェント・ヘッダー

Fix-React2Shell-NextとReact2Shell RCE:徹底ガイド、実際の脅威、そして強固な防御策

メタディスクリプション React2Shell (CVE-2025-55182)は、React Server ComponentsとNext.jsに影響を及ぼす重大な事前認証RCEです。早急なパッチ適用、強固な設定、エッジ防御、ランタイム検出が不可欠です。このガイドでは、脅威の背景、コードと CI セーフな修正、最新の Web アプリケーションをセキュアにするための徹底的な防御戦略を提供します。

React2Shellとは何か?

2025年12月初旬、React2Shellと呼ばれる致命的な脆弱性(CVE-2025-55182(Next.jsではCVE-2025-66478の別名)として追跡されている)が公開された。この欠陥は、React Server Components(RSC)の "Flight "プロトコルが受信ペイロードをデシリアライズする方法にあります。攻撃者は、悪意のあるリクエストを作成し、サーバー上で安全でないデシリアライズをトリガーすることができる。 認証されていないリモートコード実行 (RCE). censys.com+2シスディグ+2

重症度は CVSS 10.0 (最大)。 ネットSPI+1 これが特に危険なのは、その多くが デフォルトのデプロイメント Next.jsのようなフレームワーク(RSCをサポート)の悪用は、開発者がカスタムサーバーファンクションのエンドポイントを書いていなくても可能になります。 インサイトEgnworks+2blog.tecnetone.com+2

情報公開後まもなく、複数の脅威インテリジェンスチームとクラウドベンダー(AWS、GreyNoise、セキュリティ研究者)が次のように報告した。 野生での積極的利用 - 日和見的なスキャン、搾取の試み、そして国家に関連したグループによる侵入が確認されている。 TechRadar+3アマゾン ウェブ サービス社+3greynoise.io+3

要するにだ: React2Shellは机上の空論ではなく、現実であり、危機的状況であり、そして今なのだ。

CVE-2025-55182 PoC Penligent

誰が影響を受けるのか-そして誰が安全だと思っているのか(しかし安全ではない)

パッケージ / フレームワーク脆弱なバージョンパッチ/セーフバージョン(2025年12月現在)
react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack (RSC コア)19.0.0, 19.1.0, 19.1.1, 19.2.0 (react2shell.info)≥ 19.0.1, 19.1.2, 19.2.1 (react2shell.info)
Next.js(アプリルーター/RSCを有効にした場合)15.x, 16.x; certain canary 14.x-14.3.0-canary.77+ (react2shell.info)15.0.5、15.1.9、15.2.6、15.3.6、15.4.8、15.5.7、16.0.7 (またはそれ以降の安定版) (react2shell.info)

重要な注意事項がある: たとえアプリケーションが ない なぜなら、React RSCは依存関係によってバンドルされているかもしれないし、デフォルトの雛形にRSC対応コードが含まれているかもしれないからだ。 unsafe.sh+1

それゆえ しんちょうぎんみ - "サーバーコードを書いていないから安全だ "と思い込んではいけない。

攻撃者は今何をしているのか?

  • 開示時間そして、広範囲に及ぶインターネット・スキャン・キャンペーンが始まった。 greynoise.io+2cyble.com+2
  • 一部 中国国家関連のAPTグループ React2Shellに脆弱なホストを標的として最初のアクセスを行い、その後、マイナーの配備、認証情報の窃取、永続性の確立に移行したと報告されている。 アマゾン・ウェブ・サービス+2SOCプライム+2
  • セキュリティ企業やインシデント対応チームは、「バニラ」Next.jsアプリに対する悪用の成功を確認しています。 create-next-アプリつまり、デフォルトのセットアップは安全性を保証するものではないのだ。 blog.tecnetone.com+2byteiota|ビットからバイトへ+2

あるコミュニティーの報告が際立っている:

"私のNextJSサーバーがReact2Shellの悪用によって侵害された... DDoS悪用通知、5つの異なるマルウェアファミリーが展開、クリプトマイナードロッパー"Reddit

攻撃自動化の規模と攻撃性を考えると、対応の遅れや表面的な対応は、深刻な危険につながる可能性がある。

直ちにパッチを当てる - fix-react2shell-nextを使う

最速かつ第一線のディフェンスは パッチの依存関係と再構築.fix-react2shell-nextパッケージは、monorepos全体で脆弱なバージョンの検出とアップグレードを自動化します。 CVE-2025-55182 スキャナ+1

アップグレードコマンドの例:

バッシュ

npx fix-react2shell-next npm install react@^19.2.1 react-dom@^19.2.1 next@^16.0.7

その後、古いロックファイルやキャッシュされたパッケージが残っていないことを確認しながら、再構築して再デプロイする。

推奨ワークフロー(CI/CDセーフ):

  • SBOMまたは依存性チェックのステップをパイプラインに追加する。
  • 脆弱なRSCパッケージが残っている場合、マージ/ビルドをブロックする。
  • 配備前にキャッシュをクリアし、アーティファクト全体を再構築します。

これにより、デプロイメント成果物には、一時的であっても脆弱なコードが含まれなくなります。

徹底的な防御:WAF、リクエスト・ハードニング、ランタイム検出

パッチはバグをソースから取り除くが、強固なセキュリティには、将来の設定ミス、未知の依存関係、ゼロデイ亜種に備えて、防御を重層化することが必要である。パブリックリサーチ(Sysdig、Wiz、Cloud-Nativeプロテクションを使用しているベンダーなど)に基づいています。 Sysdig+2research.jfrog.com+2我々は以下を推奨する:

エッジレベル/WAF保護

RSC エンドポイントへの不審な POST をブロックする WAF ルールを設定または導入する。 /次のページ, /_rsc。特にリクエストボディのサイズやコンテントタイプが異常な場合(バイナリペイロードなど)。多くの主要なWAFプロバイダーは、すでにReact2Shellシグネチャを展開している。 シスディグ+1

除菌のお願い/ボディサイズの制限

アプリにカスタムサーバーエンドポイントが含まれている場合、ボディサイズの制限を実施し、コンテントタイプを制限し、予期しないペイロードを明示的に拒否する。例えば(Node/Expressスタイル):

js

import { json, urlencoded } from 'body-parser'; app.use(json({ limit: '10kb' })); app.use(urlencoded({ extended: false, limit: '10kb' })); app.use('/api/rsc', (req, res, next) => {if (!['application/json','application/octet-stream'].includes(req.headers['content-type'])){return res.status(415).end(); }next(); });

これにより、まだ複雑なデシリアライゼーション・ロジックを不正なペイロードや悪意のあるペイロードがトリガーするリスクを低減し、完全なパッチが適用されるまでの時間を稼ぐことができる。

ランタイム検出/監視/プロセス・スポーン警告

エクスプロイト後の動作は、シェルのスポーン(マイナーやリバースシェルなど)を伴うことが多いため、(Falco、ランタイムセキュリティエージェント、EDRなどのツールを介して)ランタイム検知を追加することで、通常とは異なるchild_processの呼び出しやアウトバウンド接続をキャッチすることができます。Sysdigの研究者は、React2Shellの悪用パターンに関する検出ルールをすでに公表している。 シスディグ

ハードニングの例パッチから安全なデプロイメントまで (コード + 設定)

バッシュ

# 1.パッチの依存関係npx fix-react2shell-next npm install react@^19.2.1 react-dom@^19.2.1 next@^16.0.7

クリーンなビルド環境

rm -rf node_modules .next package-lock.json npm install npm run build

CVE-2025-55182

SBOM/依存性スキャンをCIに追加する

GitHub Actions snippet`

ヤムル

name: React2Shellの露出を防ぐ:[pull_request, push]jobs: dependency-check: runs-on: ubuntu-latest steps:- uses: actions/checkout@v4 - run: npm ci - name: Block RSC packages run:| npm ls react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack || true npm ls react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack | grep -E "@(19.[0|1])\." && (echo "Vulnerable RSC found" && exit 1)

また、上記のようにサーバーコードにボディサイズの制限とコンテンツタイプのフィルタリングを統合し、ランタイムモニタリングエージェントまたはクラウドネイティブのEDRを導入して、デプロイ後の不審な動作を検出する。

実世界のデータ:影響、悪用、そしてなぜ遅れは危険なのか?

  • 一般に公開されている遠隔測定によると、その数は1,000を超えている。 77,000のインターネット露出IP が潜在的に脆弱であることに変わりはない。 blog.tecnetone.com+1
  • 公開から数時間以内に、攻撃者は一斉にスキャンを開始し、APTグループによる試みも含め、パッチが適用されていないシステムを悪用し始めた。 アマゾン・ウェブ・サービス+2SOCプライム+2
  • 公開された概念実証(PoC)コードが出回り始め、一部のパッチ未適用のホストは、マルウェアのドロッパー、クリプトマイナー、およびクレデンシャルの流出といった完全な侵害を受けたと報告されている。 Reddit+1

あるレディット・ユーザーはこう書いている:

"私のNextJSサーバーがReact2Shellによって侵害された...複数のマルウェアファミリー、クリプトマイナー、クレデンシャル盗難"レッドディット

これはもはや「都合のいい時にパッチを当てる」問題ではない。 緊急.

どこ ペンリジェント 自動化されたテスト、継続的保証、回帰保護

セキュリティ・テスト・ツールや侵入テスト・ツール(特に自動化されたもの、AI主導のもの)を使用している、あるいは構築しているチームにとって、React2Shellは重要な教訓を示している: 依存関係に基づく脆弱性+デシリアライズのリスク+デフォルトのコンフィギュレーションが、巨大な攻撃対象領域を生み出す。.

ペンリジェントを得る:

  • 自動化された依存関係スキャンとSBOM分析 - 脆弱なRSCパッケージ(react-server-dom-*)やパッチが適用されていないNext.jsのバージョンを、複数のリポジトリから一度に特定します。
  • 自動搾取シミュレーション(安全なサンドボックス) - Penligentのサンドボックス化されたエミュレーションは、不正なRSCリクエストの生成(非破壊)、サーバーレスポンスのテスト、危険なデシリアライズ動作の検出が可能です。
  • リグレッションアラートのためのCI/CD統合 - 新しいプルリクエストが脆弱なパッケージを再導入したり、セキュリティーを強化するミドルウェアを無効にしたりした場合、 ペンリジェント はマージ前にアラートをトリガーする。
  • ランタイム監視フック - 軽量エージェントやアラートロジックを統合し、プロセス・スポーン、不審なアウトバウンド接続、その他の異常動作(クリプトマイニング、C2コールなど)を検出する。

要するに ペンリジェント に変換する。 継続的なセキュリティ態勢コードが変更されたり、依存関係が進化したり、人為的ミスが忍び込んだりしても、リスクを減らすことができる。

ベストプラクティス・チェックリストとポストパッチ・ハードニングの推奨事項

  1. すべてのRSCおよびNext.jsパッケージに直ちにパッチを適用する。 - 次のスプリント」を待ってはいけない。
  2. アーティファクトのクリーニングと再構築 - キャッシュされたビルドに頼ってはいけない。
  3. 依存関係とロックファイルの監査 - には推移的依存関係が含まれる。
  4. CI/CDチェックまたはSBOMの実施を追加する - ブロックは脆弱なパッケージとマージする。
  5. WAFまたはエッジレベルのフィルタリングを使用する - 疑わしいFlight-protocol POSTをブロックするか、チャレンジする。
  6. リクエスト入力のサニタイズ - 可能であれば、ボディサイズの制限、コンテンツタイプのホワイトリスト、JSONスキーマの検証を実施する。
  7. ランタイム検出/モニタリングの導入 - プロセス・スポーン、異常なファイルやネットワーク・アクティビティをキャッチする。
  8. ログ、モニター、アラート - ログイン、デプロイ、異常な動作の監査証跡を保持する。
  9. フレームワークの変更をセキュリティ上重要なものとして扱う - Reactのようなブラウザ向けのパッケージであっても、RSCが関与している場合は、サーバーのセキュリティに影響を与える可能性がある。
  10. 自動化されたセキュリティツールを使用する(例. ペンリジェント) - 依存関係のスキャン、リグレッションの検出、サンドボックスによるエクスプロイトのシミュレーション、セキュリティQAを行う。

最終的な感想

React2Shell(CVE-2025-55182/66478)は、現代のウェブアプリ・セキュリティにおける画期的な出来事だ。これは、大規模なフレームワーク(主にUIレンダリングに関連するものでさえ)が、壊滅的なサーバーサイドのセキュリティ欠陥を抱え込む可能性があることを示している。開発者、DevOpsチーム、セキュリティ・チームにとって、これは重要な出来事である。 すでに何千もの配備で稼働しているゼロデイ.

依存性のあるバージョンにパッチを適用することは、最も緊急な最初のステップに過ぎない。真にセキュアな態勢を構築するには、ハードニング、入力サニタイゼーション、ランタイム・モニタリング、WAFまたはエッジ・フィルター、サプライチェーン監査、継続的なセキュリティ・テストといった多層防御が必要だ。

ウェブ・アプリケーションの構築、保守、監査、あるいはセキュリティ・ツールの開発を行っているのであれば、攻撃者がそこに到達する前に行動を起こすべき時です。次のようなツールがあります。 ペンリジェントドリルでパッチをあてる」ことから、次のステップに進むことができる。 構造化、継続的、自動化されたセキュリティ保証 - そして、React2Shellや将来のデシリアライズの脅威に対して、あなたのアプリがレジリエントであることを知っている夜、よりよく眠ることができます。

記事を共有する
関連記事
jaJapanese