Update dependency nuxt-og-image to v6 [SECURITY]#88
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
Update dependency nuxt-og-image to v6 [SECURITY]#88renovate[bot] wants to merge 1 commit intomainfrom
renovate[bot] wants to merge 1 commit intomainfrom
Conversation
76aed3e to
63a8768
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
5.1.12→6.2.5GitHub Vulnerability Alerts
CVE-2026-34404
Product: Nuxt OG Image
Version: 6.1.2
CWE-ID: CWE-404: Improper Resource Shutdown or Release
Description: Failure to limit the length and width of the generated image results in a denial of service.
Impact: Denial of service
Exploitation condition: An external user
Mitigation: Implement a limitation on the width and length of the generated image.
Researcher: Dmitry Prokhorov (Positive Technologies)
Research
During the analysis of the nuxt-og-image package, which is shipped with the nuxt-seo package, a zero‑day vulnerability was discovered.
This research revealed that the image‑generation component by the URI:
/_og/d/(and, in older versions,/og-image/) contains a Denial of Service (DoS) vulnerability. The issue arises because there is no restriction on the width and height parameters of the generated image. The vulnerability was reproduced using the standard configuration and the default templates.Listing 1. The content of the configuration file
nuxt.config.tsVulnerability reproduction
To demonstrate the proof‑of‑concept, a request should be sent with the increased
widthandheightparameters. This will cause a delay and exhaust the server’s resources during image generation.Listing 2. HTTP-request example
Figure 1. HTTP-response: denial-of-service error

After sending a HTTP-request, the test server's memory was exhausted.
Figure 2. Video memory exhausted error

Credits
Researcher: Dmitry Prokhorov (Positive Technologies)
GHSA-pqhr-mp3f-hrpp
Product: Nuxt OG Image
Version: < 6.2.5
CWE-ID: CWE-918: Server-Side Request Forgery
Description
The image generation endpoint (
/_og/d/) accepts user-controlled parameters that are passed to the server-side renderer without proper validation or filtering. An attacker can trigger server-side requests to internal network addresses through multiple vectors.Impact
Attack Vectors
Three distinct vectors were identified, all exploiting the same underlying lack of URL validation:
Vector 1: CSS
background-imageinjection viastyleparameterVector 2:
<img src>injection viahtmlparameterWhen verbose errors are enabled, the response content is leaked in base64-encoded error messages.
Vector 3: SVG
<image href>injection viahtmlparameterMitigation
Fixed in v6.2.5. The image source plugin now blocks requests to private IP ranges (IPv4/IPv6), loopback addresses, link-local addresses, and cloud metadata endpoints. Decimal/hexadecimal IP encoding bypasses are also handled.
Credits
Researcher: Dmitry Prokhorov (Positive Technologies)
CVE-2026-34405
Product: Nuxt OG Image
Version: 6.1.2
CWE-ID: CWE-79: Improper Neutralization of Input During Web Page Generation
Description: Incorrect parsing of GET parameters leads to the possibility of HTML injection and JavaScript code injection.
Impact: Client-Side JavaScript Execution
Exploitation condition: An external user
Mitigation: Correct the logic of parsing GET parameters and their subsequent implementation into the generated page.
Researcher: Dmitry Prokhorov (Positive Technologies)
Research
During the analysis of the nuxt-og-image package, which is shipped with the nuxt-seo package, a zero‑day vulnerability was discovered.
This research revealed that the image‑generation component by the URI:
/_og/d/(and, in older versions,/og-image/) contains a vulnerability that allows injection of arbitrary attributes into the HTML page body. The vulnerability was reproduced using the standard configuration and the default templates.Listing 1. The content of the configuration file
nuxt.config.tsVulnerability reproduction
To demonstrate the proof‑of‑concept, follow the URI:
/_og/d/og.html?width=1000&height=1000&onmouseover=alert(document.cookie)&autofocusThe injected parameters
onmouseover=alert(document.cookie)andautofocusare treated as attributes and are inserted directly into the generated HTML page.Listing 2. HTTP-request example
Figure 1. The injected attribute in the HTML body

Figure 2. JavaScript code execution

Credits
Researcher: Dmitry Prokhorov (Positive Technologies)
Release Notes
nuxt-modules/og-image (nuxt-og-image)
v6.2.5Compare Source
🐞 Bug Fixes
View changes on GitHub
v6.2.4Compare Source
compare changes
🩹 Fixes
🏡 Chore
❤️ Contributors
v6.2.3Compare Source
🐞 Bug Fixes
🏎 Performance
View changes on GitHub
v6.2.2Compare Source
compare changes
🔥 Performance
🩹 Fixes
🏡 Chore
❤️ Contributors
v6.2.1Compare Source
compare changes
🏡 Chore
❤️ Contributors
v6.2.0Compare Source
compare changes
🩹 Fixes
🏡 Chore
❤️ Contributors
v6.1.2Compare Source
compare changes
🚀 Enhancements
defineOgImageSchema()composable (#520)🩹 Fixes
💅 Refactors
🏡 Chore
✅ Tests
❤️ Contributors
v6.1.1Compare Source
compare changes
🩹 Fixes
🏡 Chore
❤️ Contributors
v6.1.0Compare Source
compare changes
🩹 Fixes
🏡 Chore
❤️ Contributors
v6.0.7Compare Source
compare changes
🚀 Enhancements
createandswitchcommands with DX improvements (#508)🩹 Fixes
🏡 Chore
❤️ Contributors
v6.0.6Compare Source
compare changes
🩹 Fixes
🏡 Chore
❤️ Contributors
v6.0.5Compare Source
compare changes
🩹 Fixes
🏡 Chore
❤️ Contributors
v6.0.4Compare Source
compare changes
🏡 Chore
❤️ Contributors
v6.0.3Compare Source
compare changes
🩹 Fixes
🏡 Chore
❤️ Contributors
v6.0.2Compare Source
🐞 Bug Fixes
View changes on GitHub
v6.0.1Compare Source
🐞 Bug Fixes
defineOgImage({ url })->useSeoMeta- by @harlan-zw in #496 (2e762)View changes on GitHub
v6.0.0Compare Source
Nuxt OG Image v6 brings a complete overhaul focused on performance, modern tooling, and developer experience.
📣 Highlights
📖 Migration Guide
Full migration guide: https://nuxtseo.com/og-image/migration-guide/v6
Quick Migration
Notable Changes
🚀 Takumi Renderer (Recommended)
Takumi is a Rust-based renderer that directly rasterizes to PNG/JPEG/WebP - no SVG intermediate step. It's 2-10x faster than Satori+Resvg.
See PR #414.
Takumi and Satori are feature-compatible within Nuxt OG Image - both support Tailwind CSS, custom fonts, emoji, edge runtimes, and all the same template features. The difference is speed: Takumi is always faster thanks to its Rust-based direct rasterization.
Use Takumi by creating components with the
.takumi.vuesuffix:See the Takumi docs for the full feature list.
🎨 First-Class CSS Support
Nuxt OG Image now has first-class support for multiple CSS approaches - not just Tailwind. All of these work out of the box with zero configuration:
See PR #430.
@themevalues just workprimary,secondary, etc.) are automatically resolvedNo configuration needed.
🖥️ Redesigned DevTools
The OG image DevTools have been completely overhauled:
⚡ Install Renderer Dependencies
Renderer dependencies are no longer bundled. Install what you need based on your renderer and runtime.
See PR #415.
Takumi (recommended):
Satori:
Browser:
Running
nuxi devwill prompt you to install missing dependencies automatically.🖼️ Multiple OG Images Per Page
Define multiple images with different dimensions for different platforms. Shared props are passed once and applied to all variants.
See PR #305.
Shared Props with Variants (Recommended)
Pass shared props as the second argument and size variants as the third — no prop duplication needed:
Per-variant props override shared props when needed:
Array Syntax
Alternatively, pass all options inline per variant:
🔤 @nuxt/fonts Integration
Custom fonts now use @nuxt/fonts instead of the legacy
ogImage.fontsconfig.See PR #432.
The
global: trueoption is required for fonts to be available in OG Image rendering.📦 Component Renderer Suffix
OG Image components now require a renderer suffix in their filename. This enables automatic renderer detection, multiple renderer variants, and tree-shaking.
See PR #433.
Run the migration CLI to rename automatically:
🏷️ Community Templates Must Be Ejected
Community templates (
NuxtSeo,SimpleBlog, etc.) are no longer bundled in production. Eject them to your project before building.See PR #426.
Templates continue to work in development without ejecting.
🔗 New URL Structure
OG Image URLs now use a Cloudinary-style format with options encoded in the path. This enables better CDN caching since identical options produce identical URLs.
See PR #305.
/__og-image__/image//_og/d//__og-image__/static//_og/s/🚨 Breaking Changes
🚀 Features
🐞 Bug Fixes
zeroRuntimemode - by @harlan-zw (7afb1)zeroRuntimemode - by @harlan-zw in #428 (97fb4)!important- by @harlan-zw (b5684)props={}in URLs - by @harlan-zw (7caa4)font-display-> font file - by @harlan-zw (3d4a5)defineOgImage()props - by @harlan-zw (4df12)<style>blocks - by @harlan-zw (64d59)getOgImagePathas deprecated - by @harlan-zw (00497)Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.