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. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →