{"id":446,"date":"2026-05-07T12:00:00","date_gmt":"2026-05-07T12:00:00","guid":{"rendered":"https:\/\/wordpress.securinsight.ca\/index.php\/2026\/05\/07\/workers-waf-waf-and-framework-adapter-mitigations-for-react-and-next-js-vulnerabilities\/"},"modified":"2026-05-07T12:00:00","modified_gmt":"2026-05-07T12:00:00","slug":"workers-waf-waf-and-framework-adapter-mitigations-for-react-and-next-js-vulnerabilities","status":"publish","type":"post","link":"https:\/\/wordpress.securinsight.ca\/index.php\/2026\/05\/07\/workers-waf-waf-and-framework-adapter-mitigations-for-react-and-next-js-vulnerabilities\/","title":{"rendered":"Workers, WAF &#8211; WAF and framework adapter mitigations for React and Next.js vulnerabilities"},"content":{"rendered":"<p>Multiple security vulnerabilities were disclosed by the React team and Vercel affecting React Server Components and Next.js. These include denial of service, middleware and proxy bypass, server-side request forgery, cross-site scripting, and cache poisoning issues across a range of severity levels.<\/p>\n<p><strong>We strongly recommend updating your application and its dependencies immediately.<\/strong> Patched versions are available for React (<code>react-server-dom-webpack<\/code>, <code>react-server-dom-parcel<\/code>, and <code>react-server-dom-turbopack<\/code> <code>19.0.6<\/code>, <code>19.1.7<\/code>, and <code>19.2.6<\/code>) and Next.js (<code>15.5.16<\/code> and <code>16.2.5<\/code>).<\/p>\n<h4>WAF protections<\/h4>\n<p>Cloudflare WAF rules deployed in response to prior React Server Component CVEs (<a href=\"https:\/\/github.com\/facebook\/react\/security\/advisories\/GHSA-2m3v-v2m8-q956\" target=\"_blank\"><code>CVE-2025-55184<\/code><\/a> and <a href=\"https:\/\/github.com\/facebook\/react\/security\/advisories\/GHSA-83fc-fqcc-2hmg\" target=\"_blank\"><code>CVE-2026-23864<\/code><\/a>) already provide coverage for the newly disclosed denial-of-service vulnerabilities. These rules are enabled by default with a Block action for all customers using the Cloudflare Managed Ruleset, including Free plan customers using the Free Managed Ruleset.<\/p>\n<table>\n<thead>\n<tr>\n<th>Ruleset<\/th>\n<th>Rule description<\/th>\n<th>Rule ID<\/th>\n<th>Default action<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Cloudflare Managed Ruleset<\/td>\n<td>React &#8211; DoS &#8211; <a href=\"https:\/\/github.com\/facebook\/react\/security\/advisories\/GHSA-2m3v-v2m8-q956\" target=\"_blank\"><code>CVE-2025-55184<\/code><\/a><\/td>\n<td><code>2694f1610c0b471393b21aef102ec699<\/code><\/td>\n<td>Block<\/td>\n<\/tr>\n<tr>\n<td>Cloudflare Managed Ruleset<\/td>\n<td>React &#8211; DoS &#8211; <a href=\"https:\/\/github.com\/facebook\/react\/security\/advisories\/GHSA-83fc-fqcc-2hmg\" target=\"_blank\"><code>CVE-2026-23864<\/code><\/a><\/td>\n<td><code>aaede80b4d414dc89c443cea61680354<\/code><\/td>\n<td>Block<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The existing rules detect the underlying attack patterns generically. As a result, they apply to the new <a href=\"https:\/\/github.com\/facebook\/react\/security\/advisories\/GHSA-rv78-f8rc-xrxh\" target=\"_blank\"><code>CVE-2026-23870<\/code><\/a> denial-of-service vulnerability in Server Components and the corresponding Next.js advisory <a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-8h8q-6873-q5fj\" target=\"_blank\"><code>GHSA-8h8q-6873-q5fj<\/code><\/a>.<\/p>\n<p>Cloudflare is investigating whether WAF rules can be safely and effectively deployed for three of the high-severity advisories: <a href=\"https:\/\/github.com\/facebook\/react\/security\/advisories\/GHSA-rv78-f8rc-xrxh\" target=\"_blank\"><code>CVE-2026-23870<\/code><\/a> \/ <a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-8h8q-6873-q5fj\" target=\"_blank\"><code>GHSA-8h8q-6873-q5fj<\/code><\/a>, <a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-267c-6grr-h53f\" target=\"_blank\"><code>GHSA-267c-6grr-h53f<\/code><\/a>, and <a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-mg66-mrh9-m8jx\" target=\"_blank\"><code>GHSA-mg66-mrh9-m8jx<\/code><\/a>. If it is possible to create a managed WAF rule that mitigates these CVEs and does not potentially break application behavior, Cloudflare will add additional managed WAF rules. These rules will be announced through the <a href=\"https:\/\/developers.cloudflare.com\/waf\/change-log\/changelog\/\">WAF changelog<\/a>. Because these vulnerabilities were shared with Cloudflare with minimal advance notice, we are still investigating what WAF mitigations are possible.<\/p>\n<p>Several of the disclosed vulnerabilities are not possible to block in WAF. We strongly recommend updating your applications so they are not purely reliant on WAF mitigations.<\/p>\n<p>Customers on Pro, Business, or Enterprise plans should ensure that <a href=\"https:\/\/developers.cloudflare.com\/waf\/get-started\/#1-deploy-the-cloudflare-managed-ruleset\">Managed Rules are enabled<\/a>.<\/p>\n<h4>Next.js adapters<\/h4>\n<p><strong>Vinext:<\/strong> <a href=\"https:\/\/github.com\/cloudflare\/vinext\" target=\"_blank\">Vinext<\/a> is a Vite plugin that reimplements the Next.js API surface. Vinext&#8217;s latest release is not vulnerable to any of the disclosed CVEs. Vinext&#8217;s architecture differs from stock Next.js in ways that sidestep the affected code paths. For example, it does not implement the PPR resume protocol, does not expose Pages Router data-route endpoints, and strips internal headers such as <code>x-nextjs-data<\/code> at request boundaries. As an extra layer of defense, we added a React <code>19.2.6<\/code> or later requirement when running <code>vinext init<\/code> (<a href=\"https:\/\/github.com\/cloudflare\/vinext\/pull\/1118\" target=\"_blank\">PR #1118<\/a>, <a href=\"https:\/\/github.com\/cloudflare\/vinext\/pull\/1112\" target=\"_blank\">PR #1112<\/a>) to prevent accidentally running a vulnerable version of React with Vinext.<\/p>\n<p><strong>OpenNext on Cloudflare:<\/strong> OpenNext is an adapter that lets you deploy Next.js apps to the Cloudflare Workers platform. OpenNext itself is not directly vulnerable to the React denial-of-service CVE, but users must update the Next.js version in their application. The OpenNext team has updated the adapter to further harden against these vectors and released a new version of the Cloudflare adapter. Test fixtures and examples have been updated to use patched versions (<a href=\"https:\/\/github.com\/opennextjs\/opennextjs-cloudflare\/pull\/1255\" target=\"_blank\">PR #1255<\/a>).<\/p>\n<h4>Summary of disclosed vulnerabilities<\/h4>\n<table>\n<thead>\n<tr>\n<th>Advisory<\/th>\n<th>Severity<\/th>\n<th>Issue<\/th>\n<th>WAF status<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=\"https:\/\/github.com\/facebook\/react\/security\/advisories\/GHSA-rv78-f8rc-xrxh\" target=\"_blank\"><code>CVE-2026-23870<\/code><\/a> \/ <a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-8h8q-6873-q5fj\" target=\"_blank\"><code>GHSA-8h8q-6873-q5fj<\/code><\/a><\/td>\n<td>High<\/td>\n<td>Denial of service in Server Components<\/td>\n<td><strong>WAF rules in place:<\/strong> <code>2694f1610c0b471393b21aef102ec699<\/code>, <code>aaede80b4d414dc89c443cea61680354<\/code><br \/>Cloudflare is investigating additional managed WAF coverage<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-267c-6grr-h53f\" target=\"_blank\"><code>GHSA-267c-6grr-h53f<\/code><\/a><\/td>\n<td>High<\/td>\n<td>Middleware bypass via segment-prefetch routes<\/td>\n<td>Cloudflare is investigating if this can be safely and effectively mitigated by a managed WAF rule<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-mg66-mrh9-m8jx\" target=\"_blank\"><code>GHSA-mg66-mrh9-m8jx<\/code><\/a><\/td>\n<td>High<\/td>\n<td>Denial of service via connection exhaustion in Cache Components<\/td>\n<td>Cloudflare is investigating if this can be safely and effectively mitigated by a managed WAF rule<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-492v-c6pp-mqqv\" target=\"_blank\"><code>GHSA-492v-c6pp-mqqv<\/code><\/a><\/td>\n<td>High<\/td>\n<td>Middleware bypass via dynamic route parameter injection<\/td>\n<td>Not possible to safely enable a managed WAF rule without potentially breaking application behavior<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-c4j6-fc7j-m34r\" target=\"_blank\"><code>GHSA-c4j6-fc7j-m34r<\/code><\/a><\/td>\n<td>High<\/td>\n<td>SSRF via WebSocket upgrades<\/td>\n<td>Not possible to safely enable a managed WAF rule without potentially breaking application behavior<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-36qx-fr4f-26g5\" target=\"_blank\"><code>GHSA-36qx-fr4f-26g5<\/code><\/a><\/td>\n<td>High<\/td>\n<td>Middleware bypass in Pages Router i18n<\/td>\n<td>Custom WAF rule possible; global managed rule could potentially break application behavior<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-ffhc-5mcf-pf4q\" target=\"_blank\"><code>GHSA-ffhc-5mcf-pf4q<\/code><\/a><\/td>\n<td>Moderate<\/td>\n<td>XSS via CSP nonces<\/td>\n<td>Custom WAF rule possible; global managed rule could potentially break application behavior<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-gx5p-jg67-6x7h\" target=\"_blank\"><code>GHSA-gx5p-jg67-6x7h<\/code><\/a><\/td>\n<td>Moderate<\/td>\n<td>XSS in <code>beforeInteractive<\/code> scripts<\/td>\n<td>Not possible to safely enable a managed WAF rule without potentially breaking application behavior<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-h64f-5h5j-jqjh\" target=\"_blank\"><code>GHSA-h64f-5h5j-jqjh<\/code><\/a><\/td>\n<td>Moderate<\/td>\n<td>Denial of service in Image Optimization API<\/td>\n<td>Custom WAF rule possible; global managed rule could potentially break application behavior<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-wfc6-r584-vfw7\" target=\"_blank\"><code>GHSA-wfc6-r584-vfw7<\/code><\/a><\/td>\n<td>Moderate<\/td>\n<td>Cache poisoning in RSC responses<\/td>\n<td>Custom WAF rule possible; global managed rule could potentially break application behavior<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-vfv6-92ff-j949\" target=\"_blank\"><code>GHSA-vfv6-92ff-j949<\/code><\/a><\/td>\n<td>Low<\/td>\n<td>Cache poisoning via RSC cache-busting collisions<\/td>\n<td>Not possible to safely enable a managed WAF rule without potentially breaking application behavior<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/vercel\/next.js\/security\/advisories\/GHSA-3g8h-86w9-wvmq\" target=\"_blank\"><code>GHSA-3g8h-86w9-wvmq<\/code><\/a><\/td>\n<td>Low<\/td>\n<td>Middleware redirect cache poisoning<\/td>\n<td>Custom WAF rule possible; global managed rule could potentially break application behavior<\/td>\n<\/tr>\n<\/tbody>\n<\/table>","protected":false},"excerpt":{"rendered":"<p>Multiple security vulnerabilities were disclosed by the React team and Vercel affecting React Server Components and Next.js. These include denial of service, middleware and proxy bypass, server-side request forgery, cross-site scripting, and cache poisoning issues across a range of severity levels. We strongly recommend updating your application and its dependencies immediately. Patched versions are available [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-446","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/posts\/446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/comments?post=446"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/posts\/446\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/media?parent=446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/categories?post=446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.securinsight.ca\/index.php\/wp-json\/wp\/v2\/tags?post=446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}