React Server Componentsの脆弱性CVE-2025-55182を緩和するルールがAWS WAFのマネージドルールに追加されました

React Server Componentsの脆弱性CVE-2025-55182を緩和するルールがAWS WAFのマネージドルールに追加されました

2025.12.04

React Server Components の脆弱性(CVE-2025-55182)

Vercel社より、以下のブログ記事が公開されました。

上流のReact Server Componentsの脆弱性(CVE-2025-55182)に起因してNext.jsのバージョンアップを促す内容ですが、本脆弱性はCVSS 10.0となっております。

AWS WAFによる緩和

この脆弱性に起因するリスクを緩和するためのルールがAWS WAFのマネージドルールグループ AWSManagedRulesKnownBadInputsRuleSet に追加されていました。

ルール名は ReactJSRCE_BODY となっております。

aws wafv2 describe-managed-rule-group \
  --vendor-name "AWS" \
  --name "AWSManagedRulesKnownBadInputsRuleSet" \
  --scope "REGIONAL"
$ aws wafv2 describe-managed-rule-group --vendor-name "AWS" --name "AWSManagedRulesKnownBadInputsRuleSet" --scope "REGIONAL"
{
    "SnsTopicArn": "arn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notifications",
    "Capacity": 200,
    "Rules": [
        {
            "Name": "JavaDeserializationRCE_BODY",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "JavaDeserializationRCE_URIPATH",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "JavaDeserializationRCE_QUERYSTRING",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "JavaDeserializationRCE_HEADER",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "Host_localhost_HEADER",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "PROPFIND_METHOD",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "ExploitablePaths_URIPATH",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "Log4JRCE_QUERYSTRING",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "Log4JRCE_BODY",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "Log4JRCE_URIPATH",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "Log4JRCE_HEADER",
            "Action": {
                "Block": {}
            }
        },
        {
+           "Name": "ReactJSRCE_BODY",
            "Action": {
                "Block": {}
            }
        }
    ],
    "AvailableLabels": [
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:Host_Localhost_Header"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:Log4JRCE_QueryString"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_QueryString"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:Log4JRCE_URIPath"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:Log4JRCE_Header"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_Header"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:Propfind_Method"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:Log4JRCE_Body"
        },
        {
+           "Name": "awswaf:managed:aws:known-bad-inputs:ReactJSRCE_Body"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:ExploitablePaths_URIPath"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_URIPath"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_Body"
        }
    ]
}

ちなみに、前のバージョン( Version_1.22 )にはこのルールが含まれていないことが確認できます。

Version_1.23 は欠番のようです。最新は Version_1.24

【追記】2025-12-08に Version_1.25 がリリースされ、検知率の改善が行われています。詳細はChangeLogを確認してください。

aws wafv2 describe-managed-rule-group \
  --vendor-name "AWS" \
  --name "AWSManagedRulesKnownBadInputsRuleSet" \
  --scope "REGIONAL" \
  --version-name "Version_1.22"
{
    "VersionName": "Version_1.22",
    "SnsTopicArn": "arn:aws:sns:us-east-1:248400274283:aws-managed-waf-rule-notifications",
    "Capacity": 200,
    "Rules": [
        {
            "Name": "JavaDeserializationRCE_BODY",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "JavaDeserializationRCE_URIPATH",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "JavaDeserializationRCE_QUERYSTRING",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "JavaDeserializationRCE_HEADER",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "Host_localhost_HEADER",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "PROPFIND_METHOD",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "ExploitablePaths_URIPATH",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "Log4JRCE_QUERYSTRING",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "Log4JRCE_BODY",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "Log4JRCE_URIPATH",
            "Action": {
                "Block": {}
            }
        },
        {
            "Name": "Log4JRCE_HEADER",
            "Action": {
                "Block": {}
            }
        }
    ],
    "AvailableLabels": [
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_URIPath"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:Log4JRCE_QueryString"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:Log4JRCE_URIPath"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:ExploitablePaths_URIPath"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_Body"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:Log4JRCE_Header"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:Log4JRCE_Body"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:Host_Localhost_Header"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:Propfind_Method"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_QueryString"
        },
        {
            "Name": "awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_Header"
        }
    ]
}

管理するシステムでこの脆弱性の影響を受ける場合、バージョンアップして根本的な対処をするかAWS WAF等を利用して問題を緩和しましょう。

ただし、AWS WAFでできることはあくまでも「緩和」です。可能な限り速やかにバージョンアップしましょう。

(追記)AWS WAFで検査できるBODYのサイズについて

以下の通り、検査できるBODYのサイズには制限があります。

For Application Load Balancer and AWS AppSync, the limit is fixed at 8 KB (8,192 bytes).
For CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access, the default limit is 16 KB (16,384 bytes), and you can increase the limit for any of the resource types by increments of 16 KB, up to 64 KB. The setting options are 16 KB, 32 KB, 48 KB, and 64 KB.

React/NextのPayloadの最大サイズはデフォルトで1MBに制限されています。

bodySizeLimit
By default, the maximum size of the request body sent to a Server Action is 1MB, to prevent the consumption of excessive server resources in parsing large amounts of data, as well as potential DDoS attacks.

そのため、AWS WAFでは攻撃を完全には防ぐことができません。

検査対象のサイズが上限を超えている場合の処理については以下のドキュメントを参照してください。

ペイロードのサイズがWAFの制限を超える場合にルールを適用して検査したい場合、 CONTINUE を指定する必要があります。

Warning
This rule only inspects the request body up to the body size limit for the protection pack (web ACL) and resource type. For Application Load Balancer and AWS AppSync, the limit is fixed at 8 KB. For CloudFront, API Gateway, Amazon Cognito, App Runner, and AWS Verified Access, the default limit is 16 KB and you can increase the limit up to 64 KB in your protection pack (web ACL) configuration. This rule uses the CONTINUE option for oversize content handling. For more information, see Oversize web request components in AWS WAF.

なお、CloudFlareのWAFに関しては、1MBのPayloadまでサポートするリリースが2025年12月5日に行われています。
(追記1)しかしながら、Freeプランを除き、検査するPayloadのサイズが元に戻りました。誤検知が多数発生したとのことです。個別に引き上げることは可能なようです。
(追記2)なお、本脆弱性に関連してルールの強化などは随時行われているようです。
(追記3)新たに報告された2つの脆弱性に対応するルールもリリースされています。

(補足)Vercelでホストされているプロジェクトについて

以下の記事の通り、すでにWAFによって保護されているとのことです。

参考情報

現場からは以上です。

この記事をシェアする

FacebookHatena blogX

関連記事