{"id":"GHSA-3g8h-86w9-wvmq","kind":"vulnerability","aliases":["GHSA-3g8h-86w9-wvmq"],"related":[],"title":"WAF and framework adapter mitigations for React and Next.js vulnerabilities · Changelog","description":"WAF and framework adapter mitigations for React and Next.js vulnerabilities · Changelog\n\n# Changelog\n\nNew updates and improvements at Cloudflare.\n\nMay 7, 2026\n\n## WAF and framework adapter mitigations for React and Next.js vulnerabilities\n\nMultiple 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.\n\nWe strongly recommend updating your application and its dependencies immediately. Patched versions are available for React (`react-server-dom-webpack`, `react-server-dom-parcel`, and `react-server-dom-turbopack` `19.0.6`, `19.1.7`, and `19.2.6`) and Next.js (`15.5.16` and `16.2.5`).\n\n#### WAF protections\n\nCloudflare WAF rules deployed in response to prior React Server Component CVEs (`CVE-2025-55184` ↗︎ and `CVE-2026-23864` ↗︎) 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.\n\n| Ruleset | Rule description | Rule ID | Default action |\n| --- | --- | --- | --- |\n| Cloudflare Managed Ruleset | React - DoS - `CVE-2025-55184` ↗︎ | `2694f1610c0b471393b21aef102ec699` | Disabled |\n| Cloudflare Managed Ruleset | React - DoS - `CVE-2026-23864` ↗︎ | `aaede80b4d414dc89c443cea61680354` | Block |\n\nThe existing rules detect the underlying attack patterns generically. As a result, they apply to the new `CVE-2026-23870` ↗︎ denial-of-service vulnerability in Server Components and the corresponding Next.js advisory `GHSA-8h8q-6873-q5fj` ↗︎.\n\nCloudflare is investigating whether WAF rules can be safely and effectively deployed for three of the high-severity advisories: `CVE-2026-23870` ↗︎ / `GHSA-8h8q-6873-q5fj` ↗︎, `GHSA-267c-6grr-h53f` ↗︎, and `GHSA-mg66-mrh9-m8jx` ↗︎. 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 WAF changelog. Because these vulnerabilities were shared with Cloudflare with minimal advance notice, we are still investigating what WAF mitigations are possible.\n\nSeveral 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.\n\nCustomers on Pro, Business, or Enterprise plans should ensure that Managed Rules are enabled.\n\n#### Next.js adapters\n\nVinext: Vinext ↗︎ is a Vite plugin that reimplements the Next.js API surface. Vinext's latest release is not vulnerable to any of the disclosed CVEs. Vinext'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 `x-nextjs-data` at request boundaries. As an extra layer of defense, we added a React `19.2.6` or later requirement when running `vinext init` (PR #1118 ↗︎, PR #1112 ↗︎) to prevent accidentally running a vulnerable version of React with Vinext.\n\nOpenNext on Cloudflare: 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 (PR #1255 ↗︎).\n\n#### Summary of disclosed vulnerabilities\n\n| Advisory | Severity | Issue | WAF status |\n| --- | --- | --- | --- |\n| `CVE-2026-23870` ↗︎ / `GHSA-8h8q-6873-q5fj` ↗︎ | High | Denial of service in Server Components | WAF rules in place: `2694f1610c0b471393b21aef102ec699`, `aaede80b4d414dc89c443cea61680354` Cloudflare is investigating additional managed WAF coverage |\n| `GHSA-267c-6grr-h53f` ↗︎ | High | Middleware bypass via segment-prefetch routes | Cloudflare is investigating if this can be safely and effectively mitigated by a managed WAF rule |\n| `GHSA-mg66-mrh9-m8jx` ↗︎ | High | Denial of service via connection exhaustion in Cache Components | Cloudflare is investigating if this can be safely and effectively mitigated by a managed WAF rule |\n| `GHSA-492v-c6pp-mqqv` ↗︎ | High | Middleware bypass via dynamic route parameter injection | Not possible to safely enable a managed WAF rule without potentially breaking application behavior |\n| `GHSA-c4j6-fc7j-m34r` ↗︎ | High | SSRF via WebSocket upgrades | Not possible to safely enable a managed WAF rule without potentially breaking application behavior |\n| `GHSA-36qx-fr4f-26g5` ↗︎ | High | Middleware bypass in Pages Router i18n | Custom WAF rule possible; global managed rule could potentially break application behavior |\n| `GHSA-ffhc-5mcf-pf4q` ↗︎ | Moderate | XSS via CSP nonces | Custom WAF rule possible; global managed rule could potentially break application behavior |\n| `GHSA-gx5p-jg67-6x7h` ↗︎ | Moderate | XSS in `beforeInteractive` scripts | Not possible to safely enable a managed WAF rule without potentially breaking application behavior |\n| `GHSA-h64f-5h5j-jqjh` ↗︎ | Moderate | Denial of service in Image Optimization API | Custom WAF rule possible; global managed rule could potentially break application behavior |\n| `GHSA-wfc6-r584-vfw7` ↗︎ | Moderate | Cache poisoning in RSC responses | Custom WAF rule possible; global managed rule could potentially break application behavior |\n| `GHSA-vfv6-92ff-j949` ↗︎ | Low | Cache poisoning via RSC cache-busting collisions | Not possible to safely enable a managed WAF rule without potentially breaking application behavior |\n| `GHSA-3g8h-86w9-wvmq` ↗︎ | Low | Middleware redirect cache poisoning | Custom WAF rule possible; global managed rule could potentially break application behavior |","summary":"Cloudflare's changelog lists a set of React Server Components and Next.js vulnerabilities (denial of service, middleware bypass, SSRF, XSS, cache poisoning) and which ones its managed WAF rules cover. Several high-severity issues cannot yet be blocked by WAF, so the fix is updating the application itself.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["cloudflare","lab-disclosure","next.js","opennext","react","self-hosted","vendor"],"not_affected_if":["vinext"],"how_to_check":"- Check the React packages `react-server-dom-webpack`, `react-server-dom-parcel` and `react-server-dom-turbopack` in your lockfile; they should be `19.0.6`, `19.1.7` or `19.2.6` or later for their release line\n- Check the Next.js version in `package.json` and lockfile; it should be `15.5.16` or `16.2.5` or later\n- Check whether Cloudflare Managed Rules are enabled for your zone, looking for rule `aaede80b4d414dc89c443cea61680354` set to Block","fix":"- Update React Server Components packages to `19.0.6`, `19.1.7` or `19.2.6` as appropriate for your release line\n- Update Next.js to `15.5.16` or `16.2.5`\n- Do not rely only on WAF rules; Cloudflare says several of these issues cannot be blocked at the WAF\n- If on OpenNext on Cloudflare, update to the new adapter release","status":"open","published_at":"2026-05-07T00:00:00+00:00","first_seen_at":"2026-10-24T18:56:54+00:00","triaged_at":"2026-10-25T05:35:27+00:00","updated_at":"2026-10-25T05:35:27+00:00","category":"vendor","confidence":0.6,"triage":{"at":"2026-10-25T05:35:27Z","model":"claude-haiku-5-5","output":{"fix":"- Update React Server Components packages to `19.0.6`, `19.1.7` or `19.2.6` as appropriate for your release line\n- Update Next.js to `15.5.16` or `16.2.5`\n- Do not rely only on WAF rules; Cloudflare says several of these issues cannot be blocked at the WAF\n- If on OpenNext on Cloudflare, update to the new adapter release","reach":"internet","title":"Cloudflare: WAF and adapter mitigations for React and Next.js flaws","impact":"high","summary":"Cloudflare's changelog lists a set of React Server Components and Next.js vulnerabilities (denial of service, middleware bypass, SSRF, XSS, cache poisoning) and which ones its managed WAF rules cover. Several high-severity issues cannot yet be blocked by WAF, so the fix is updating the application itself.","category":"vendor","nicknames":[],"who_cares":["next.js","react","cloudflare","self-hosted","opennext"],"confidence":0.6,"needs_auth":"unknown","worst_case":"unknown; sources list denial of service, middleware bypass, SSRF, XSS and cache poisoning","analyst_note":"Pull the individual GHSA advisories linked in the Cloudflare table to confirm per-issue affected versions, and check the WAF changelog for newly announced managed rules.","how_to_check":"- Check the React packages `react-server-dom-webpack`, `react-server-dom-parcel` and `react-server-dom-turbopack` in your lockfile; they should be `19.0.6`, `19.1.7` or `19.2.6` or later for their release line\n- Check the Next.js version in `package.json` and lockfile; it should be `15.5.16` or `16.2.5` or later\n- Check whether Cloudflare Managed Rules are enabled for your zone, looking for rule `aaede80b4d414dc89c443cea61680354` set to Block","needs_analyst":true,"not_affected_if":["vinext"],"who_is_affected":"Applications that use React Server Components or Next.js, especially those deployed behind Cloudflare or on Cloudflare Workers via OpenNext. Vinext is reported as not vulnerable to the disclosed issues, and OpenNext itself is not directly vulnerable but its users must update Next.js. Teams that run only static exports or do not use React Server Components are likely outside scope, but this is not confirmed by the source.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.001017,"input_tokens":5803,"output_tokens":873,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2025':213C,271C '-2026':217C,281C,303C,344C,654C '-23864':218C,282C '-23870':304C,345C,655C '-55184':214C,272C '1112':555C '1118':553C '1255':643C '15.5.16':195C '16.2.5':197C '19.0.6':189C '19.1.7':190C '19.2.6':192C,544C '2026':101C '267c':353C '2694f1610c0b471393b21aef102ec699':273C '3g8h':14A,19A '6873':321C,349C,659C '6grr':354C '7':100C '86w9':15A,20A '8h8q':320C,348C,658C 'aaede80b4d414dc89c443cea61680354':283C 'accident':558C 'across':151C 'action':240C,264C 'adapt':4A,84C,105C,461C,573C,615C,630C 'add':385C,541C 'addit':386C 'advanc':408C 'advisori':317C,342C,648C 'affect':123C,499C 'alreadi':219C 'announc':394C 'api':472C 'app':579C 'appli':298C 'applic':80B,162C,381C,436C,608C 'architectur':489C 'attack':291C 'avail':170C 'behavior':382C 'block':71B,239C,284C,428C 'boundari':533C 'break':380C 'busi':449C 'bypass':50B,137C 'cach':53B,148C 'cannot':68B 'changelog':11A,35B,91C,92C,398C 'cloudflar':22B,33B,98C,200C,246C,265C,275C,323C,383C,405C,569C,582C,629C 'code':500C 'compon':42B,126C,210C,312C 'correspond':315C 'cover':62B 'coverag':221C 'creat':367C 'cross':144C 'cross-sit':143C 'custom':243C,252C,446C 'cve':212C,216C,270C,280C,302C,343C,598C,653C 'cves':211C,375C,486C 'data':518C,530C 'data-rout':517C 'default':236C,263C 'defens':539C 'denial':46B,131C,227C,306C,595C,662C 'denial-of-servic':226C,305C,594C 'depend':165C 'deploy':203C,334C,577C 'descript':260C 'detect':288C 'differ':490C 'direct':589C 'disabl':274C 'disclos':116C,225C,422C,485C,646C 'disclosur':25B 'dom':176C,181C,187C 'dos':269C,279C 'effect':333C 'enabl':234C,459C 'endpoint':520C 'ensur':454C 'enterpris':451C 'exampl':503C,634C 'exist':286C 'expos':514C 'extra':536C 'fix':76B 'fixtur':632C 'forgeri':142C 'framework':3A,83C,104C 'free':250C,255C 'generic':293C 'ghsa':13A,18A,319C,347C,352C,358C,657C 'ghsa-267c-6grr-h53f':351C 'ghsa-3g8h-86w9-wvmq':12A,17A 'ghsa-8h8q':318C,346C,656C 'ghsa-mg66-mrh9-m8jx':357C 'h53f':355C 'harden':618C 'header':524C 'high':65B,340C,661C 'high-sever':64B,339C 'host':31B 'id':262C 'immedi':166C 'implement':507C 'improv':96C 'includ':130C,249C 'init':551C 'intern':523C 'investig':325C,413C 'issu':67B,150C,650C 'lab':24B 'lab-disclosur':23B 'later':546C 'latest':476C 'layer':537C 'let':575C 'level':156C 'list':36B 'm8jx':361C 'manag':59B,247C,256C,266C,276C,369C,387C,456C 'may':99C 'mg66':359C 'middlewar':49B,134C 'minim':407C 'mitig':5A,85C,106C,373C,416C,445C 'mrh9':360C 'multipl':112C 'must':601C 'new':93C,301C,625C 'newli':224C 'next.js':9A,26B,44B,89C,110C,128C,194C,316C,460C,471C,493C,578C,604C 'nextj':529C 'notic':409C 'one':57B 'opennext':27B,567C,570C,585C,610C 'page':515C 'parcel':182C 'patch':167C,640C 'path':501C 'pattern':292C 'plan':251C,452C 'platform':584C 'plugin':467C 'poison':54B,149C 'possibl':365C,418C,426C 'potenti':379C 'ppr':509C 'pr':552C,554C,642C 'prevent':557C 'prior':207C 'pro':448C 'protect':199C 'protocol':511C 'provid':220C 'proxi':136C 'pure':441C 'q5fj':322C,350C,660C 'rang':153C 'react':7A,28B,40B,87C,108C,119C,124C,172C,174C,179C,185C,208C,268C,278C,543C,564C,593C 'react-server-dom-parcel':178C 'react-server-dom-turbopack':184C 'react-server-dom-webpack':173C 'recommend':159C,433C 'reimplement':469C 'releas':477C,623C 'reliant':442C 'request':141C,532C 'requir':547C 'respons':205C 'result':296C 'resum':510C 'rout':519C 'router':516C 'rule':61B,202C,232C,259C,261C,287C,328C,371C,389C,391C,457C 'ruleset':248C,257C,258C,267C,277C 'run':549C,559C 'safe':331C 'script':146C 'se':664C 'secur':113C 'self':30B 'self-host':29B 'server':41B,125C,139C,175C,180C,186C,209C,311C 'server-sid':138C 'servic':48B,133C,229C,308C,597C 'set':38B 'sever':63B,66B,155C,341C,419C,649C 'share':403C 'side':140C 'sidestep':497C 'site':145C 'ssrf':51B 'status':652C 'still':412C 'stock':492C 'strip':522C 'strong':158C,432C 'summari':644C 'surfac':473C 'team':120C,611C 'test':631C 'three':336C 'turbopack':188C 'under':290C 'updat':78B,94C,160C,434C,602C,613C,637C 'use':244C,253C,639C 'user':600C 'vector':621C 'vendor':32B 'vercel':122C 'version':168C,562C,605C,626C,641C 'vinext':462C,463C,474C,487C,550C,566C 'vite':466C 'vulner':10A,45B,90C,111C,114C,230C,309C,401C,423C,480C,561C,590C,647C 'waf':1A,60B,73B,81C,102C,198C,201C,327C,370C,388C,397C,415C,430C,444C,651C 'way':495C 'webpack':177C 'whether':326C 'worker':583C 'wvmq':16A,21A 'x':528C 'x-nextjs-data':527C 'xss':52B 'yet':69B","nicknames":[],"mitigations":[],"who_affected":"Applications that use React Server Components or Next.js, especially those deployed behind Cloudflare or on Cloudflare Workers via OpenNext. Vinext is reported as not vulnerable to the disclosed issues, and OpenNext itself is not directly vulnerable but its users must update Next.js. Teams that run only static exports or do not use React Server Components are likely outside scope, but this is not confirmed by the source.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-05-07T00:00:00+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"lab","external_id":"https://developers.cloudflare.com/changelog/post/2026-05-06-react-nextjs-vulnerabilities/#GHSA-3g8h-86w9-wvmq","url":"https://developers.cloudflare.com/changelog/post/2026-05-06-react-nextjs-vulnerabilities/","severity":null,"published_at":"2026-05-07T00:00:00+00:00","modified_at":null,"first_seen_at":"2026-10-24T18:56:54+00:00","fetched_at":"2026-10-24T18:56:54+00:00","note":"Cloudflare: WAF and framework adapter mitigations for React and Next.js vulnerabilities · Changelog"}],"documents":[{"id":2906,"url":"https://developers.cloudflare.com/changelog/post/2026-05-06-react-nextjs-vulnerabilities/","title":"Cloudflare: WAF and framework adapter mitigations for React and Next.js vulnerabilities · Changelog","kind":"advisory","source":"lab","text":"WAF and framework adapter mitigations for React and Next.js vulnerabilities · Changelog\n\n# Changelog\n\nNew updates and improvements at Cloudflare.\n\nMay 7, 2026\n\n## WAF and framework adapter mitigations for React and Next.js vulnerabilities\n\nMultiple 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.\n\nWe strongly recommend updating your application and its dependencies immediately. Patched versions are available for React (`react-server-dom-webpack`, `react-server-dom-parcel`, and `react-server-dom-turbopack` `19.0.6`, `19.1.7`, and `19.2.6`) and Next.js (`15.5.16` and `16.2.5`).\n\n#### WAF protections\n\nCloudflare WAF rules deployed in response to prior React Server Component CVEs (`CVE-2025-55184` ↗︎ and `CVE-2026-23864` ↗︎) 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.\n\n| Ruleset | Rule description | Rule ID | Default action |\n| --- | --- | --- | --- |\n| Cloudflare Managed Ruleset | React - DoS - `CVE-2025-55184` ↗︎ | `2694f1610c0b471393b21aef102ec699` | Disabled |\n| Cloudflare Managed Ruleset | React - DoS - `CVE-2026-23864` ↗︎ | `aaede80b4d414dc89c443cea61680354` | Block |\n\nThe existing rules detect the underlying attack patterns generically. As a result, they apply to the new `CVE-2026-23870` ↗︎ denial-of-service vulnerability in Server Components and the corresponding Next.js advisory `GHSA-8h8q-6873-q5fj` ↗︎.\n\nCloudflare is investigating whether WAF rules can be safely and effectively deployed for three of the high-severity advisories: `CVE-2026-23870` ↗︎ / `GHSA-8h8q-6873-q5fj` ↗︎, `GHSA-267c-6grr-h53f` ↗︎, and `GHSA-mg66-mrh9-m8jx` ↗︎. 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 WAF changelog. Because these vulnerabilities were shared with Cloudflare with minimal advance notice, we are still investigating what WAF mitigations are possible.\n\nSeveral 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.\n\nCustomers on Pro, Business, or Enterprise plans should ensure that Managed Rules are enabled.\n\n#### Next.js adapters\n\nVinext: Vinext ↗︎ is a Vite plugin that reimplements the Next.js API surface. Vinext's latest release is not vulnerable to any of the disclosed CVEs. Vinext'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 `x-nextjs-data` at request boundaries. As an extra layer of defense, we added a React `19.2.6` or later requirement when running `vinext init` (PR #1118 ↗︎, PR #1112 ↗︎) to prevent accidentally running a vulnerable version of React with Vinext.\n\nOpenNext on Cloudflare: 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 (PR #1255 ↗︎).\n\n#### Summary of disclosed vulnerabilities\n\n| Advisory | Severity | Issue | WAF status |\n| --- | --- | --- | --- |\n| `CVE-2026-23870` ↗︎ / `GHSA-8h8q-6873-q5fj` ↗︎ | High | Denial of service in Server Components | WAF rules in place: `2694f1610c0b471393b21aef102ec699`, `aaede80b4d414dc89c443cea61680354` Cloudflare is investigating additional managed WAF coverage |\n| `GHSA-267c-6grr-h53f` ↗︎ | High | Middleware bypass via segment-prefetch routes | Cloudflare is investigating if this can be safely and effectively mitigated by a managed WAF rule |\n| `GHSA-mg66-mrh9-m8jx` ↗︎ | High | Denial of service via connection exhaustion in Cache Components | Cloudflare is investigating if this can be safely and effectively mitigated by a managed WAF rule |\n| `GHSA-492v-c6pp-mqqv` ↗︎ | High | Middleware bypass via dynamic route parameter injection | Not possible to safely enable a managed WAF rule without potentially breaking application behavior |\n| `GHSA-c4j6-fc7j-m34r` ↗︎ | High | SSRF via WebSocket upgrades | Not possible to safely enable a managed WAF rule without potentially breaking application behavior |\n| `GHSA-36qx-fr4f-26g5` ↗︎ | High | Middleware bypass in Pages Router i18n | Custom WAF rule possible; global managed rule could potentially break application behavior |\n| `GHSA-ffhc-5mcf-pf4q` ↗︎ | Moderate | XSS via CSP nonces | Custom WAF rule possible; global managed rule could potentially break application behavior |\n| `GHSA-gx5p-jg67-6x7h` ↗︎ | Moderate | XSS in `beforeInteractive` scripts | Not possible to safely enable a managed WAF rule without potentially breaking application behavior |\n| `GHSA-h64f-5h5j-jqjh` ↗︎ | Moderate | Denial of service in Image Optimization API | Custom WAF rule possible; global managed rule could potentially break application behavior |\n| `GHSA-wfc6-r584-vfw7` ↗︎ | Moderate | Cache poisoning in RSC responses | Custom WAF rule possible; global managed rule could potentially break application behavior |\n| `GHSA-vfv6-92ff-j949` ↗︎ | Low | Cache poisoning via RSC cache-busting collisions | Not possible to safely enable a managed WAF rule without potentially breaking application behavior |\n| `GHSA-3g8h-86w9-wvmq` ↗︎ | Low | Middleware redirect cache poisoning | Custom WAF rule possible; global managed rule could potentially break application behavior |","published_at":"2026-05-07T00:00:00+00:00","relation":"advisory","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}