React(Reactjs)は、Meta(旧: Facebook)によって開発されたWebアプリケーションを構築する上で人気の高いフレームワークの1つです。現代ではMetaに限らず様々なWebサイトやアプリケーションに使用されています。
2025年12月3日、このReactにおいて CVSS 10という極めて危険な脆弱性(CVE-2025-55182)が公表 されました。この脆弱性は、Reactのサーバーコンポーネント(RSC)における不具合で、クライアントから受け取ったリクエストを安全ではない形で処理してしまっていたことに起因します。また、この脆弱性はReactを使用したフレームワークであるNext.jsにも影響が及んでいます。
この記事では、脆弱性の概要と必要な対策について簡単に記します。なお、脆弱性が修正されたバージョンが既に公開されていることから、基本的にはアップグレードを行うことによって対応を行うことが可能であることをはじめに述べておきます。
結論
- RSC(サーバーコンポーネント)内のデシリアライズで不十分な確認が行われていた
- HTTPリクエストを送信するのみで任意のコードを実行する攻撃が可能になる
- Next.jsにも影響があり、速やかなアップデートが求められる
脆弱性の概要
React公式ブログによれば、この脆弱性は2025年11月29日にReactに対して報告が行われたもので、12月3日に修正が行われたバージョンの公開及びCVE番号の付与・公開が行われました。

NVDによると、この脆弱性の影響を受けるReactのバージョンは、19.0.0・19.1.0・19.1.1・19.2.0の4つであるとのことです。また、 脆弱性の危険度合いを表すCVSSは10 となっており、早急な対処が求められるものとなっていると言えます。
これらのバージョンにおいて存在した脆弱性は、Reactのサーバーコンポーネント(RSC)がクライアントからデータを受け取った際のデータの取り扱いに問題があったことに起因します。RSCはクライアントとサーバー間で「Flight」と呼ばれるプロトコルを使用し、データのシリアライズ/デシリアライズを行います。通信自体はHTTPで行われ、そのペイロードが「Flight」と呼ばれるプロトコルで記載されているといった形式です。
クライアントから送信されてきたデータに対して、RSCはデシリアライズを行い、内部処理を行えるよう加工を行うのですが、その際に安全であるかどうかの確認を十分に行わず、解析や展開を行っているといった問題が存在します。ここにおいて(詳細は安全のために伏せられているものの)不正なペイロードを受け取った場合において、RSCは任意のコードの実行を許してしまうこととなります。いわば HTTP通信を受け付けているReactサーバーに対して、不正なペイロードを送信すれば任意のコードを実行させられる脆弱性 となっています。
クラウドセキュリティ企業であるWizによると、この脆弱性は create-next-app を用いてReactを用いた人気フレームワークであるNext.jsをセットアップした状態(デフォルト設定のまま)でさえ影響があるものであり、同社が把握しているクラウド環境で動作しているReactを使用しているインスタンスの39%が影響を受けうる状態だとのことです。また、攻撃が容易であることも問題として挙げており、テスト環境における攻撃成功率は100%に近いとのことです。
初めにこの問題を報告したLachlan Davidsonさんによって、この脆弱性は「 React2Shell 」と名付けられています。Davidsonさんによって開設されたReact2Shell.comにおいて、現在SNS等において実質的に無害なPoC(概念実証)があふれている旨が指摘されていますが、とはいえ上に述べたように危険な脆弱性と言えます。なお、CDN事業及びセキュリティ事業を手掛けるAkamaiによれば、 3日の時点で実際にこの脆弱性を用いた攻撃は確認されていない とのことです。
必要な対応
先に述べたように、12月3日に脆弱性に対して対応が行われたバージョンのReactがリリースされています。脆弱性に対する対応が行われているバージョンは、19.0.1・19.1.2・19.2.1となっています。
具体的なアップグレードの手法についてはReactの公式ブログで詳細な案内がなされています。Reactを使用されている環境に合わせて、適切なアップグレードを行ってください。
Reactを利用している著名なフレームワークであるNext.jsにおいてもこの問題が影響を及ぼす形となっています。Next.jsにおける対応に関してはNext.jsの公式ブログをご覧ください。影響を受けるのは、RSCもしくはApp Routerを使用する、16.x・15.x・14.3.0-canary.77以降のcanaryリリースとなっています。13.x・14.x安定版は影響をうけないとのことです。またPages Router及びEdgeランタイムは影響を受けないとされています。
なお、Reactに依存している他のパッケージやフレームワークにおいて対応がなされておらず、アップグレードを行う環境によっては対応が行われていないバージョンのままとなってしまう可能性に留意するべきです。可能な限りバージョンを指定したアップグレードを行うことを推奨します。
また、同様の理由によってnpm auditなどのツールを活用し、「React2Shell」脆弱性を抱えているバージョンをインストールしてしまっていないかを確認することも重要です。アップグレードを的確に行うことによって対応が可能であるため、本格的な悪用が始まる前に対策を行うことをおすすめします。
関連リンク
- Critical Security Vulnerability in React Server Components - React
- CVE-2025-55182 - CVE Record
- JSライブラリ「React」に深刻なRCE脆弱性 - 早急に対応を - Security NEXT
- Critical Vulnerabilities in React and Next.js: everything you need to know - Wiz
- CVE-2025-55182: React and Next.js Server Functions Deserialization RCE - Akamai
- Patch FlightReplyServer with fixes from ReactFlightClient by sebmarkbage · Pull Request #35277 · facebook/react - GitHub
- React2Shell
- Security Advisory: CVE-2025-66478 - Next.js
- 「Next.js」にセキュリティアップデート - 「React」脆弱性が影響 - Security NEXT
最後に
Reactは現代のWebサイト・Webアプリケーションにおいて積極的に使用されているフレームワークであるため、この脆弱性は大きな影響を及ぼすものになるかと思われます。しかしながら、これを理由に「Reactを禁止する」といった対策を施すことは実質的な意味がないといえます。本当に必要なのは、適切な情報収集と多層的なセキュリティ(今回の例ですと適切な権限付与や仮想化の実施をサーバー内で行うなど)だと考えます。
なお、今回問題となったデシリアライゼーションにおける脆弱性は、React固有の問題ではなく他のフレームワークやライブラリでも発生し得る問題です。また言語を問わず外部との通信があるソフトウェアにおいて起こりうる問題ですので、生成AIの活用に伴って人間が確認するべきコードが爆発的に増加している現在、より注意深く確認を行う必要があるでしょう。
また、CVSSは基本的に最悪のケースを想定したスコアが示されることが多く、結果として過大なスコアとなってしまうことがあります。しかしながら、今回の脆弱性においては攻撃の容易性とそれによる影響が極めて高いため(それが10という最高値であるべきか、ということは置いておいて)、高いスコアであるべきことに異論はないでしょう。この「React2Shell」脆弱性が今後どうなっていくかについて、慎重に見守っていきたいと思います。