CVE-2026-61793: Nuxt OG Image has unauthenticated SSRF via `fonts[].path` URL parameter
nuxt-og-image exposes an unauthenticated HTTP endpoint at /_og/d/** that base64url-decodes and JSON.parses a fonts URL segment, then passes each fonts[i].path value directly into fetch() server-side without any URL validation (no scheme allowlist, no loopback/RFC1918 block, no host allowlist, no DNS rebinding mitigation).
Under the module’s documented default configuration (security.strict = false, security.secret = "", restrictRuntimeImagesToOrigin = false), any caller able to reach the deployed Nuxt site can force the Nuxt server to issue arbitrary outbound GET requests to any host reachable from the server - including loopback, RFC1918 LAN, and cloud metadata services (AWS IMDS, GCE/Azure metadata, Kubernetes kubelet, internal admin panels, Redis/etcd/Consul/Vault HTTP APIs).
The chain is blind (Satori consumes the response as font bytes and silently discards non-fonts) but a robust side-channel exists: the outer HTTP status is 500 when the SSRF target returns 2xx, and 200 when it fails or returns non-2xx. This is sufficient to (a) enumerate live internal services and open ports, (b) confirm IMDSv1 reachability, and (c) detect credential issuance on environments still allowing IMDSv1.
Demonstrated end-to-end on a stock npm create nuxt@latest install with the module’s documented default usage.
References
- github.com/advisories/GHSA-q8hw-4fvp-9rwv
- github.com/nuxt-modules/og-image/commit/243cac2228671d3711c2bd65e300c278fcdf5a4e
- github.com/nuxt-modules/og-image/pull/637
- github.com/nuxt-modules/og-image/releases/tag/v6.7.0
- github.com/nuxt-modules/og-image/security/advisories/GHSA-q8hw-4fvp-9rwv
- nvd.nist.gov/vuln/detail/CVE-2026-61793
Code Behaviors & Features
Detect and mitigate CVE-2026-61793 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →