Gemiddeld · 5.1 Node.js & npm GHSA-mxm6-v9r6-r94c CVE-2026-63671
XSS-sanitizer-omzeiling in @nuxtjs/mdc via SVG xlink:href en data:text/html
Een cross-site scripting-kwetsbaarheid (CVE-2026-63671) in @nuxtjs/mdc vóór versie 0.22.1 maakt het mogelijk om via SVG xlink:href-attributen en data:text/html-iframes de URL-sanitizer te omzeilen, waardoor aanvallerscode kan worden uitgevoerd binnen de context van de pagina.
AI-samenvatting
Er is een cross-site scripting (XSS)-kwetsbaarheid bekendgemaakt in @nuxtjs/mdc, een tool voor het weergeven van Markdown als interactieve Vue-componenten. Geregistreerd als CVE-2026-63671 (GHSA-mxm6-v9r6-r94c) stelt het probleem aanvallers in staat om de ingebouwde URL-sanitizer van de bibliotheek te omzeilen bij het verwerken van niet-vertrouwde Markdown-inhoud, wat kan leiden tot het uitvoeren van willekeurige scripts binnen de context van de betreffende pagina. De kwetsbaarheid is verholpen in versie 0.22.1.
Wat is er gebeurd
@nuxtjs/mdc verwerkt Markdown met allowDangerousHtml standaard ingeschakeld en vertrouwt op sanitatiefuncties (validateProps, validateProp en unsafeLinkPrefix) om uitvoerbare URL's uit niet-vertrouwde Markdown te verwijderen vóór weergave. In deze sanitatielogica zijn twee specifieke lacunes gevonden waardoor kwaadaardige inhoud alsnog kan doorglippen en in de browser kan worden uitgevoerd.
Technische oorzaak
De sanitizer kent twee naast elkaar bestaande lacunes. Ten eerste controleert validateProp alleen attributen die letterlijk href of src heten, maar een SVG-attribuut geschreven als xLinkHref (dat xlink:href representeert) wordt niet gecontroleerd. Hierdoor kan een javascript:-URL in dat attribuut worden uitgevoerd binnen de oorsprong van de pagina zelf zodra het element wordt geactiveerd. Ten tweede vergelijkt de blokkeerlijst voor data:text/html-waarden alleen het protocol-onderdeel van de URL, namelijk data:. Dit betekent dat een iframe met als src data:text/html de sanitatie volledig doorstaat en wordt uitgevoerd zodra het iframe laadt, binnen een opake oorsprong. Andere gevaarlijke constructies — gewone href javascript:-URL's, srcdoc, object, script en base-elementen — worden al correct geblokkeerd door de bestaande sanitizer; deze twee paden zijn smalle, specifieke uitzonderingen daarop.
Waarom dit belangrijk is
Elke applicatie die Markdown uit niet-vertrouwde of door gebruikers aangeleverde bronnen weergeeft met @nuxtjs/mdc in de standaardconfiguratie, loopt risico op het uitvoeren van scripts in de browser. Dit kan leiden tot sessiekaping, diefstal van inloggegevens of andere acties die worden uitgevoerd binnen de beveiligingscontext van een ingelogde gebruiker, afhankelijk van hoe de weergegeven inhoud wordt getoond en welke rechten de bekijkende gebruiker heeft.
Wie wordt getroffen
Elk project dat het npm-pakket @nuxtjs/mdc gebruikt om Markdown uit niet-vertrouwde bronnen weer te geven, in een versie vóór 0.22.1, wordt getroffen. Het risico concentreert zich bij applicaties die Markdown-invoer van gebruikers of externe bronnen accepteren en deze weergeven met de standaard allowDangerousHtml-configuratie.
Getroffen versies
Alle versies van @nuxtjs/mdc vóór versie 0.22.1 zijn getroffen.
Oplossingen en mitigatie
Het probleem is verholpen in @nuxtjs/mdc versie 0.22.1. Projecten die dit pakket gebruiken, dienen te updaten naar deze versie of hoger.
Aanbevolen actie
Update @nuxtjs/mdc naar versie 0.22.1. Als onmiddellijk updaten niet mogelijk is, overweeg dan om allowDangerousHtml uit te schakelen voor niet-vertrouwde Markdown-bronnen en pas aanvullende sanitatie van de uitvoer toe als tijdelijke mitigatie totdat de update kan worden doorgevoerd.
PatchBriefing-score
5.1 / 10 · Gemiddeld
Officiële CVSS: 8.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
Waarom deze score
Deze kwetsbaarheid heeft een PatchBriefing-score van 5.1, voornamelijk bepaald door de CVSS-basisscore van 8.1, die wijst op over het netwerk uitbuitbare omstandigheden met lage complexiteit en zonder authenticatie, die de vertrouwelijkheid en integriteit kunnen aantasten. De score wordt getemperd doordat de aanval gebruikersinteractie vereist (zoals het klikken op een geprepareerde link of het laden van inhoud met de kwaadaardige markup), er geen bewijs is van actieve uitbuiting, er geen publiek beschikbare exploitcode is geïdentificeerd, en er al een oplossing beschikbaar is. EPSS-gegevens wijzen op een lage kans op uitbuiting op korte termijn.
Getroffen versies
- @nuxtjs/mdc < 0.22.1
- kwetsbaar
- ≥ 0.22.1
- gepatcht
Gemelde oplossingen
Het probleem is verholpen in @nuxtjs/mdc versie 0.22.1. Projecten die dit pakket gebruiken, dienen te updaten naar deze versie of hoger.
Hoe dit rapport is gemaakt
2 bronrecords zijn opgehaald, gekoppeld en gebruikt om het rapport hierboven op te stellen.
-
GitHub Advisory Database database
-
NVD (NIST) database
Revisiegeschiedenis
- Gepubliceerd
- Gegenereerd
Gerelateerd
Relevante veranderingen voor de stacks die je volgt.
Kies je stacks, onderwerpen en eventueel WordPress-plugins. Om 07:00 CEST worden passende meldingen en releases uit de rapportageperiode in één e-mail gegroepeerd.
✓ Kies stacks en onderwerpen✓ Pas voorkeuren altijd aan✓ Eén gebundelde e-mail