Skip to main content

Nuxt OG Image EUVDEUVD-2026-102199

| CVE-2026-102527 MEDIUM
Acceptance of Extraneous Untrusted Data With Trusted Data (CWE-349)
2026-10-15 GitHub_M GHSA-2x6f-rp82-ppmj
6.9
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify target OG image URL and params
  2. Delivery
    Craft unsigned /_og/d/*.png request
  3. Exploit
    Supply attacker title and derived cacheKey
  4. Execution
    Poison cache slot for legitimate image
  5. Impact
    Spoofed 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

og-image 6.2.5, < 6.7.0

Affected Packages

npm nuxt-og-image fix: 6.7.0
euvd og_image fix: 6.7.0

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

Vendor (GitHub_M) PRIMARY 6.9 MEDIUM
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
vuln.today AI 5.3 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 15, 2026 - 18:18 EUVD

DescriptionCVE.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

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Medium
popular Nuxt module but only a subset of Nuxt-based sites, not universal
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Nuxt

View all
CVE-2023-3224 CRITICAL POC
9.8 Jun 13

Code Injection in GitHub repository nuxt/nuxt prior to 3.5.3. Rated critical severity (CVSS 9.8), this vulnerability is

CVE-2024-34344 HIGH POC
8.8 Aug 05

Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve

CVE-2024-23657 HIGH POC
8.8 Aug 05

Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve

CVE-2024-42352 HIGH POC
7.5 Aug 05

Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated high seve

CVE-2026-61793 MEDIUM POC
6.9 Sep 17

Unauthenticated server-side request forgery in Nuxt OG Image (the npm package nuxt-og-image) 6.0.2 through 6.6.x allows

CVE-2025-52662 MEDIUM POC
6.1 Nov 07

A vulnerability in Nuxt DevTools has been fixed in version **2.6.4***. Rated medium severity (CVSS 6.9), this vulnerabil

CVE-2024-34343 MEDIUM POC
6.1 Aug 05

Nuxt is a free and open-source framework to create full-stack web applications and websites with Vue.js. Rated medium se

CVE-2023-0878 MEDIUM POC
6.1 Feb 17

Cross-site Scripting (XSS) - Generic in GitHub repository nuxt/framework prior to 3.2.1. Rated medium severity (CVSS 6.1

CVE-2022-4413 MEDIUM POC
6.1 Dec 12

Cross-site Scripting (XSS) - Reflected in GitHub repository nuxt/framework prior to v3.0.0-rc.13. Rated medium severity

CVE-2023-2138 CRITICAL
9.8 Apr 18

Use of Hard-coded Credentials in GitHub repository nuxtlabs/github-module prior to 1.6.2. Rated critical severity (CVSS

CVE-2026-41248 CRITICAL
9.1 Apr 24

Authentication/authorization bypass in Clerk's official JavaScript SDKs (@clerk/nextjs, @clerk/nuxt, @clerk/astro, and t

CVE-2026-53721 HIGH POC
8.8 Jun 12

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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy