Laag · 3.0 PHP-packages GHSA-9rjx-3jch-6vjf CVE-2026-107380 PKSA-8j6w-3kr7-s9xk
CVE-2026-107380: Stored XSS in enshrined/svg-sanitize via DTD-entiteit en HTML5 named character reference-collision
enshrined/svg-sanitize bevat een stored XSS waarbij een DTD-entiteit de href-validatie kan omzeilen en na serialisatie alsnog een javascript: URL blootlegt. Het probleem is opgelost in 1.0.0. (Bronnen: GHSA, OSV, NVD)
AI-samenvatting
In enshrined/svg-sanitize (PHP) is een kwetsbaarheid (CVE-2026-107380 / GHSA-9rjx-3jch-6vjf) gevonden waarbij een speciaal geconstrueerde XML DTD-entiteit een href veilig kan laten lijken voor de sanitizer, maar later bij inline rendering kan resulteren in een javascript: URL. De leverancier publiceerde een fix in 1.0.0. [Bronnen: 3976, 4174, 8433, 31854]
Wat is er gebeurd
De sanitizer controleert hrefs nadat XML DTD-entiteiten zijn uitgebreid, maar saveXML() serialiseert vervolgens de oorspronkelijke entiteitsreferentie nadat de DTD-declaratie is verwijderd. Een speciaal geconstrueerde entiteit (bijvoorbeeld een Tab-entiteit) kan daardoor veilig lijken voor de sanitizer, terwijl HTML5 named character reference-resolutie bij inline rendering de overgebleven referentie naar witruimte omzet en een javascript: URL onthult. Wanneer de geschoonde SVG inline wordt ingebed, kan het volgen van die link script uitvoeren in de origin van de pagina. De fout is verholpen in versie 1.0.0. [Bronnen: 3976, 4174, 8433, 31854]
Technische oorzaak
De validatiefunctie (isHrefSafeValue()) loopt na XML DTD-entiteituitbreiding, terwijl saveXML() de oorspronkelijke entiteitsreferentie uitzendt nadat de DTD is verwijderd. Deze discrepantie maakt het mogelijk dat een entiteit de validatie passeert maar bij latere rendering alsnog tot een gevaarlijke URL leidt. Dit is een probleem in de neutralisatie van input dat tot cross-site scripting kan leiden. [Bronnen: 3976, 4174, 8433, 31854]
Waarom dit belangrijk is
Als een toepassing enshrined/svg-sanitize gebruikt om SVG's te sanitiseren en die geschoonde SVG's inline in HTML plaatst, kan een aanvaller met een speciaal vervaardigde SVG een link creëren die script uitvoert in de context van de pagina wanneer gebruikers die link activeren. Dit betekent een XSS-risico voor de betreffende site. [Bronnen: 3976, 4174, 8433, 31854]
Wie is getroffen
Applicaties en projecten die enshrined/svg-sanitize gebruiken om SVG-invoer te sanitiseren en die de geschoonde SVG inline in pagina's plaatsen, lopen risico. De advisories geven aan dat releases voor de fix kwetsbaar zijn; de leverancier lost het probleem op in 1.0.0. [Bronnen: 3976, 4174, 8433, 31854]
Ontdekking en tijdlijn
Publieke advisories en databases publiceerden details op 2026-10-08 (OSV en GitHub advisories). NVD registreert de vermelding met een publicatietijdstempel van 2026-10-08. De advisories geven 1.0.0 als de gerepareerde versie. De bronnen geven geen aanvullende informatie over actieve exploitatie of een openbaar exploit-tijdpad. [Bronnen: 3976, 4174, 8433, 31854]
Getroffen versies
Advisories noemen dat het probleem voorkomt in releases vóór de fix en verwijzen in sommige uitdrukkingen expliciet naar releases tot en met 0.22.0; de fixeerversie is 1.0.0. Behandel daarom alle geïnstalleerde releases die eerder dan 1.0.0 liggen (inclusief vermeldingen tot en met 0.22.0) als potentieel kwetsbaar. [Bronnen: 3976, 4174, 8433, 31854]
Oplossingen en mitigatie
Er is een leveranciersupdate beschikbaar; de advisories noemen 1.0.0 als gerepareerde versie. Het toepassen van de update naar 1.0.0 is de primaire remedie. De advisories geven geen andere mitigerende maatregelen als vervanging. [Bronnen: 3976, 4174, 8433, 31854]
Aanbevolen actie
Werk enshrined/svg-sanitize bij naar 1.0.0. Als bijwerken niet meteen mogelijk is, voorkom het inline inbedden van door gebruikers geleverde SVG's in HTML-pagina's of schakel server-side verwerking uit die DTD's en entiteituitbreiding toestaat voordat sanitisatie plaatsvindt. Controleer dependency lockfiles en deploy pipelines na het bijwerken. [Bronnen: 3976, 4174, 8433, 31854]
PatchBriefing-score
3.0 / 10 · Laag
Officiële CVSS: 5.4
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Waarom deze score
De advisories geven een CVSS v3.1 basiscore van 5.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N). Dit weerspiegelt netwerktoegang, lage complexiteit, vereist lage privileges en gebruikersinteractie, en gedeeltelijke impact op vertrouwelijkheid en integriteit met scope-verandering. De Patchwire-score is 3; scorefactoren wijzen 2.97 punten toe aan de CVSS-basiscore en geen extra bijdrage van bekende exploitatie, publiek exploit of EPS S-indicatoren. [Bronnen: 3976, 4174, 8433, 31854]
Getroffen versies
- enshrined/svg-sanitize ≥ 0 < 1.0.0
- kwetsbaar
- enshrined/svg-sanitize
- kwetsbaar
- enshrined/svg-sanitize <=0.22.0
- kwetsbaar
- enshrined/svg-sanitize <= 0.22.0
- kwetsbaar
- ≥ 1.0.0
- gepatcht
Gemelde oplossingen
Er is een leveranciersupdate beschikbaar; de advisories noemen 1.0.0 als gerepareerde versie. Het toepassen van de update naar 1.0.0 is de primaire remedie. De advisories geven geen andere mitigerende maatregelen als vervanging. [Bronnen: 3976, 4174, 8433, 31854]
Hoe dit rapport is gemaakt
4 bronrecords zijn opgehaald, gekoppeld en gebruikt om het rapport hierboven op te stellen.
-
OSV.dev database
-
Packagist Security Advisories registry
-
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