<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-19T19:57:08.626873+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-2x6f-rp82-ppmj</id>
    <title>GHSA-2x6f-rp82-ppmj — Nuxt OG Image cache poisoning through derivable cache keys on unsigned dynamic image routes</title>
    <updated>2026-10-19T19:57:08.628352+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> npm: nuxt-og-image</p>
<p>**Vendor:** Nuxt
**Product:** Nuxt OG Image
**Version:** 6.2.5
**Description:** Due to the specifics of caching and key generation in the Open Graph image cache created by the module, an unauthenticated attacker can modify the content of the image (for example, the `title` parameter) that is delivered to the user. 
**Impact:** Content Spoofing
**Vulnerable component:** route `/_og/d/*.png`
**Exploitation conditions:** Access to the application
**Mitigation:** Upgrade to 6.7.2 and set a sufficiently secure `secret` in config `ogImage`
**Researcher:** Dmitry Vanin (Positive Technologies)</p>
<p>## Research
During [the previous vulnerability research](https://github.com/nuxt-modules/og-image/security/advisories/GHSA-6c86-prf5-hj4h), it was discovered that version 6.2.5 changed the mechanism for generating cache indexes; it now takes into account the parameters passed during image generation.</p>
<p>However, the image is still generated from data transmitted to the attacker.</p>
<p>_Listing 1. New code for generating indexes in cache_
```
export function resolvePathCacheKey(e: H3Event, path: string, resolvedOptions?: Record&lt;string, any&gt;) {
  const siteConfig = getSiteConfig(e, {
    resolveRefs: true,
  })
  const basePath = withoutTrailingSlash(withoutLeadingSlash(normalizeKey(path)))
  const hashParts: any[] = [
    basePath,
    import.meta.prerender ? '' : siteConfig.url,
  ]
  // Hash resolved options (not raw query string) so unknown/extra query params
  // cannot produce unique cache keys…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-2x6f-rp82-ppmj"/>
  </entry>
</feed>
