Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify target OG image URL and params
-
DeliveryCraft unsigned /_og/d/*.png request
-
ExploitSupply attacker title and derived cacheKey
-
ExecutionPoison cache slot for legitimate image
-
ImpactSpoofed OG image served to users and crawlers
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V4 - API and Web Service Acceptance of extraneous untrusted data
|
| Exploitation Conditions | Exploitable only against runtime OG image generation on versions 6.2.5 through 6.6.x where URL signing is not active - specifically deployments that have not set a signing secret, because before 6.7.0 the /_og/d/*.png route accepted unsigned requests (6.7.0 makes signing default-on via an auto-generated per-build secret). Prerendered/static OG images and any deployment that explicitly configured security.secret are not affected. Limiting factors: impact is confined to serving spoofed image content via cache-key collision (no code execution, data theft, or outage), and the attacker must derive the cacheKey from the request path, site URL, and normalized rendering options to overwrite a specific legitimate image slot. |
| Impact | This is a genuine but moderate-severity integrity issue rather than a top-priority emergency. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms a network-reachable, low-complexity, unauthenticated attack path, which raises reachability concern, but impact is deliberately narrow: VC:N/VA:N and only VI:L, i.e. a limited integrity effect (cache poisoning of served OG image content) with no confidentiality or availability loss, consistent with CWE-349 (acceptance of untrusted data). No EPSS score was supplied, the CVE is not listed in CISA KEV, and no proof-of-concept is referenced, so there is no public exploit identified at time of analysis. The headline 6.9 is a CVSS 4.0 score; note the input Tag labels this 'Information Disclosure', which conflicts with the vector - there is no confidentiality impact (VC:N), so this is a content-spoofing/integrity flaw, not disclosure. Overall: a real, easily reachable but low-impact spoofing bug worth patching on publicly exposed Nuxt sites, not a drop-everything critical. |
| Exploit ScenarioDerived | An attacker targets a public Nuxt site using nuxt-modules/og-image (6.2.5-6.6.x) with no configured signing secret. They send unsigned requests to the dynamic /_og/d/*.png route supplying an attacker-controlled title parameter and a derived cacheKey matching a legitimate page's OG image, poisoning that cache slot so social-media crawlers and users subsequently receive the spoofed image. No public exploit code is referenced, but the attack needs no authentication - only crafting the request path and parameters. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Cache poisoning in Nuxt OG Image 6.2.5 through 6.6.x lets unauthenticated remote attackers overwrite the cached image slot used for a site's legitimate Open Graph image by submitting attacker-controlled rendering parameters (notably the 'title' value) alongside a derived cacheKey to the dynamic /_og/d/*.png route, so spoofed image content is then served to users and crawlers that request the poisoned URL. Both the module's own CVSS 4.0 vector (6.9, AV:N/AC:L/PR:N/UI:N/VI:L) and the independent assessment (CVSS 3.1, AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N) agree the impact is limited to integrity of served image content - no code execution, data theft, or availability loss - and that exploitation requires a runtime deployment where URL signing has not been configured. No public exploit code was identified at time of analysis and the issue is not listed as actively exploited, but a fixed release (6.7.0), the upstream commit, and the advisory are all public, so the technical details needed to reproduce the cache-key collision are openly documented. The independent assessment characterizes this as a genuine but moderate-severity integrity issue rather than a top-priority emergency.
RemediationAI
Vendor-released patch: Nuxt OG Image 6.7.0. Upgrade nuxt-modules/og-image to 6.7.0 or later, which makes URL signing default-on by auto-generating a per-build secret and returns 403 for unsigned or tampered runtime requests to /_og/d/*.png; see the advisory at https://github.com/nuxt-modules/og-image/security/advisories/GHSA-2x6f-rp82-ppmj and the release notes at https://github.com/nuxt-modules/og-image/releases/tag/v6.7.0. If an immediate upgrade is not possible, the compensating control is to enable URL signing on the affected 6.2.5-6.6.x deployment by setting ogImage.security.secret to a strong explicit value (or the NUXT_OG_IMAGE_SECRET environment variable) so unsigned requests are rejected, as documented in the upstream security guide; the trade-off is that the secret must be identical across every instance, since URLs signed by one build/instance will fail verification on another. Note explicitly that Nuxt OG Image 6.7.0's automatic secret is regenerated on each build, which is fine for prerendered static images and single-instance runtimes but will break signed runtime URLs during rolling or multi-instance deploys, so set an explicit, stable secret there; setting security.strict additionally requires that explicit secret. Do not disable signing (security.secret: false) as a mitigation - that re-enables the vulnerable unsigned route. After patching, purge or invalidate any cached OG image entries served through /_og/d/*.png, since previously poisoned slots may persist in an upstream CDN or application cache and would otherwise continue serving spoofed content; if the deployment serves prerendered/static OG images only, no action beyond verification is required.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Nuxt OG Image is a Nuxt module that generates Open Graph images at request time using Vue templates, served through a dynamic /_og/d/*.png route. The root cause class is CWE-349 (Acceptance of Extraneous Untrusted Data With Trusted Data): the dynamic route accepted unsigned requests while resolvePathCacheKey() built its cache key from caller-influenced inputs - the request path, the site URL, and the normalized rendering options exposed through image URLs and server responses. Because those same values are observable to an attacker, an unauthenticated requester could construct a cacheKey that maps to an existing legitimate image entry and supply a different 'title' parameter, causing the poisoned rendering to be stored under the victim's slot. The upstream fix introduces a build-time signing-secret resolver (src/build/signing-secret.ts) that turns URL signing on by default: when no explicit secret is configured, a CSPRNG value (randomBytes(32).toString('base64url')) is baked into the runtime config so that signed and verifying instances agree within a build artifact, and any runtime request with a missing or invalid signature is rejected with HTTP 403. An explicit stable secret is still required when security.strict is enabled, because the auto-generated value rotates on every build. An explicit opt-out (security.secret: false) restores unsigned runtime URLs and therefore re-exposes the vulnerable behavior.
Know when Nuxt gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Unsigned route is remotely reachable without auth or interaction (AV:N/AC:L/PR:N/UI:N); only limited integrity impact from cache poisoning (I:L), with no confidentiality or availability loss.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Nuxt OG Image generates OG Images with Vue templates in Nuxt. From 6.2.5 until 6.7.0, the dynamic /_og/d/*.png route accepts unsigned requests while resolvePathCacheKey() produces cache keys from the request path, site URL, and normalized rendering options exposed through image URLs and server responses. An unauthenticated attacker can provide attacker-controlled image data through the title parameter together with a derived cacheKey and populate the cache slot used for a legitimate Open Graph image, causing spoofed image content to be served to users. This issue is fixed in version 6.7.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Code Injection in GitHub repository nuxt/nuxt prior to 3.5.3. Rated critical severity (CVSS 9.8), this vulnerability is
Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve
Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve
Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve
Unauthenticated server-side request forgery in Nuxt OG Image (the npm package nuxt-og-image) 6.0.2 through 6.6.x allows
A vulnerability in Nuxt DevTools has been fixed in version **2.6.4***. Rated medium severity (CVSS 6.9), this vulnerabil
Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated medium se
Cross-site Scripting (XSS) - Generic in GitHub repository nuxt/framework prior to 3.2.1. Rated medium severity (CVSS 6.1
Cross-site Scripting (XSS) - Reflected in GitHub repository nuxt/framework prior to v3.0.0-rc.13. Rated medium severity
Use of Hard-coded Credentials in GitHub repository nuxtlabs/github-module prior to 1.6.2. Rated critical severity (CVSS
Authentication/authorization bypass in Clerk's official JavaScript SDKs (@clerk/nextjs, @clerk/nuxt, @clerk/astro, and t
Route-rule middleware bypass in Nuxt 3.11.0-3.21.6 and 4.0.0-4.4.6 allows remote attackers to evade routeRules-defined p
EUVD-2026-102199
GHSA-2x6f-rp82-ppmj
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB