Read the docs
TI-2026-02700 Aliases CVE-2026-3125GHSA-c7mq-gh6q-6q7c

SSRF vulnerability in opennextjs-cloudflare via /cdn-cgi/ path normalization bypass

Priority MEDIUM 40CWE-706Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
—
Confidentiality · integrity · availability
Low · Low · None
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.

Summary

A Server-Side Request Forgery (SSRF) vulnerability was identified in the @opennextjs/cloudflare package, resulting from a path normalization bypass in the /cdn-cgi/image/ handler.The @opennextjs/cloudflare worker template includes a /cdn-cgi/image/ handler intended for development use only. In production, Cloudflare's edge intercepts /cdn-cgi/image/ requests before they reach the Worker. However, by substituting a backslash for a forward slash (/cdn-cgi\image/ instead of /cdn-cgi/image/), an attacker can bypass edge interception and have the request reach the Worker directly. The JavaScript URL class then normalizes the backslash to a forward slash, causing the request to match the handler and trigger an unvalidated fetch of arbitrary remote URLs. For example: https://victim-site.com/cdn-cgi\image/aaaa/https://attacker.com In this example, attacker-controlled content from attacker.com is served through the victim site's domain (victim-site.com), violating the same-origin policy and potentially misleading users or other services. Note: This bypass only works via HTTP clients that preserve backslashes in paths (e.g., curl --path-as-is). Browsers normalize backslashes to forward slashes before sending requests. Additionally, Cloudflare Workers with Assets and Cloudflare Pages suffer from a similar vulnerability. Assets stored under /cdn-cgi/ paths are not publicly accessible under normal conditions. However, using the same backslash bypass (/cdn-cgi\... instead of /cdn-cgi/...), these assets become publicly accessible. This could be used to retrieve private data. For example, Open Next projects store incremental cache data under /cdn-cgi/_next_cache, which could be exposed via this bypass.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.004 34th percentileScored 2026-11-07
Fix Fixed @opennextjs/cloudflare (opennextjs): 1.17.1@opennextjs/cloudflare (npm): 1.17.1

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
opennextjs@opennextjs/cloudflarebefore 1.17.11.17.1Patch availableCNA
—@opennextjs/cloudflare (npm)before 1.17.11.17.1Patch availableGHSA-c7mq-gh6q-6q7c
  • @opennextjs/cloudflare Vendoropennextjs Affected before 1.17.1 Fixed in 1.17.1 Patch available CNA
  • @opennextjs/cloudflare (npm) Vendor— Affected before 1.17.1 Fixed in 1.17.1 Patch available GHSA-c7mq-gh6q-6q7c

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:opennextjs:opennext_for_cloudflare:*:*:*:*:*:node.js:*:*before 1.17.1Vulnerableopennextjs
  • cpe:2.3:a:opennextjs:opennext_for_cloudflare:*:*:*:*:*:node.js:*:* Versions before 1.17.1 Vulnerable ·opennextjs

Remediation

  • Fix · CNA @opennextjs/cloudflare (opennextjs) Fixed in 1.17.1
  • Fix · GHSA-c7mq-gh6q-6q7c @opennextjs/cloudflare (npm) Fixed in 1.17.1 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-3125
  2. 2026-10-03 Alias added: GHSA-c7mq-gh6q-6q7c

References

  • TI-2025-05497 SSRF vulnerability in opennextjs-cloudflare via /_next/image endpoint CVSS 4.0HIGH 7.8

Sources