Mittel

Cache-Poisoning in Nuxt OG Image durch ableitbare Cache-Schlüssel auf ungesicherten dynamischen Bildrouten

  • Veröffentlicht: 15.10.2026
  • Aktualisiert: 19.10.2026 08:00

Hersteller: Nuxt Produkt: Nuxt OG Image Version: 6.2.5 Beschreibung: Aufgrund von Besonderheiten beim Caching und der Schlüsselgenerierung im vom Modul erstellten Open Graph-Bildcache kann ein nicht authentifizierter Angreifer den Inhalt des an den Benutzer ausgelieferten Bildes (beispielsweise den Parameter title) manipulieren. Auswirkung: Content Spoofing Verwundbare Komponente: Route /_og/d/*.png Bedingungen für die Ausnutzung: Zugriff auf die Anwendung Abhilfe: Aktualisieren Sie auf 6.7.2 und setzen Sie ein ausreichend sicheres secret in der Konfiguration ogImage Forscher: Dmitry Vanin (Positive Technologies)

Untersuchung

Während der vorherigen Schwachstellenuntersuchung,) wurde festgestellt, dass Version 6.2.5 den Mechanismus zur Erstellung von Cache-Indizes geändert hat; dieser berücksichtigt nun die während der Bildgenerierung übergebenen Parameter.

Dennoch wird das Bild weiterhin aus Daten generiert, die an den Angreifer übermittelt werden.

Listing 1. Neuer Code zur Generierung von Indizes im Cache

js
export function resolvePathCacheKey(e: H3Event, path: string, resolvedOptions?: Record<string, any>) {
  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 and bypass the cache.
  if (resolvedOptions)
    hashParts.push(hash(resolvedOptions))
  return [
    (!basePath || basePath === '/') ? 'index' : basePath,
    hash(hashParts),
  ].join(':')
}

In diesem Fall wird basePath aus dem Parameter _path bezogen, resolvedOptions sind die normalisierten Einstellungen der Komponente, zum Beispiel:

Listing 2. Ein Beispiel für resolvedOptions

{"emojis":"noto","extension":"png","width":1200,"height":600,"cacheMaxAgeSeconds":259200,"component":"OgImageDefaultImageTakumi"}

Aus der Analyse von resolvedOptions wurde geschlossen, dass im Allgemeinen alle Parameter entweder über den direkten Link zum OG Image oder aus der Serverantwort bekannt sind.

Reproduktion der Schwachstelle

  1. Route zum OG Image ermitteln. Abbildung 1. Nachweis des Auffindens der Route zum OG Image image (width: 974, height: 361)

  2. Parameter aus der Serverantwort abrufen, insbesondere cacheMaxAgeSeconds (cache-control-Header, s-maxage-Schlüssel); die übrigen Parameter sind sowohl aus den Meta-Tags als auch aus dem Parameter c_<component name> bekannt. Abbildung 2. Abrufen der Parameter image (width: 974, height: 245)

  3. Cache-Schlüssel mittels eines Skripts generieren. Listing 3. Skript

js
import {hash} from "ohash";

var url = "https://contoso.com"

var obj = JSON.parse(`{"emojis":"noto","extension":"png","width":1200,"height":600,"cacheMaxAgeSeconds":259200,"component":"OgImageBlogPostTakumi"}`)

var basePath = '/'

var hashParts = [
    basePath,
    url
  ]
  
if (obj)
	hashParts.push(hash(obj))

console.log([
    (!basePath || basePath === '/') ? 'index' : basePath,
    hash(hashParts),
  ].join(':'))
  1. Die Schritte wie in der Schwachstelle 1,) wiederholen, jedoch zusätzlich das ermittelte cacheKey übermitteln.

  2. Somit wurde dasselbe Ergebnis wie in der Schwachstelle 1) erzielt. Abbildung 4. Serverantwort image (width: 974, height: 729)

Danksagung

Forscher: Dmitry Vanin (Positive Technologies)

Was zu tun ist

Aktualisieren Sie auf Version 6.7.2 und legen Sie ein ausreichend sicheres secret in der Konfiguration ogImage fest.

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
npm-Paket nuxt-og-image >= 6.2.5, < 6.7.0 6.7.0

Verweise

CVSS-Wert -
CVSS-Vektor
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
Schwäche (CWE)
CWE-349
Plattform
npm
Paket
nuxt-og-image
Veröffentlicht
15.10.2026
Aktualisiert
19.10.2026 08:00

Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.

OSV / GitHub Advisory Database - GHSA-2x6f-rp82-ppmj - CC BY 4.0

Schwachstellenhistorie: nuxt-og-image

Alle veröffentlichten Schwachstellen dieses Pakets (npm-Paket), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Einträge insgesamt
6
Erste → letzte
03.2026 10.2026
Ohne Fix
0
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Mittel 5
  • Niedrig 1

Veröffentlichungen pro Jahr

  1. 2026: 6
  1. Cache-Poisoning in Nuxt OG Image durch ableitbare Cache-Schlüssel auf ungesicherten dynamischen Bildrouten dieser Eintrag
    Mittel CVE-2026-102527 >= 6.2.5, < 6.7.0 6.7.0
  2. Mittel CVE-2026-61793 >= 6.0.2, < 6.7.0 6.7.0
  3. Niedrig · 3.7 CVE-2026-44589 >= 6.2.5, < 6.4.9 6.4.9

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.