Strona główna / Blog / svg-sanitizer: variant analysis

Blog · analiza

Cztery nowe advisories jednego dnia w svg-sanitizer: kiedy sanitizer przestaje być „control”, a staje się rodziną parserowych założeń

1 września 2026 maintainer projektu darylldoyle/svg-sanitizer opublikował cztery nowe security advisories: mixed-case xlink:HrEf omijające kontrolę zagnieżdżeń <use>, CSS injection i remote reference bypass, stored XSS z kolizji interpretacji DTD entity / HTML5 named character references oraz DoS przez DTD Attribute Declaration.

Dlaczego to nie są „cztery zwykłe CVE”?

SVG jest interpretowany na styku XML, DOM, CSS, URL resolution, namespaces, DTD/entities i zachowania parsera przeglądarkowego. Kontrola poprawna w jednym modelu może przestać być poprawna po zmianie case'u, normalizacji albo reinterpretacji przez kolejny parser. To podręcznikowy przypadek variant analysis: po znalezieniu jednego bypassu nie wystarczy patchować konkretnego payloadu — trzeba szukać semantycznie równoważnych reprezentacji (case folding, entities, namespaces, nested references, CSS URLs, parser differentials).

Co to znaczy dla VM?

Jeżeli organizacja używa sanitizera jako compensating control dla uploadu SVG, nowe advisories powinny uruchomić revalidation wszystkich wyjątków opartych na tej kontroli. Nie wystarczy library upgraded → finding closed. Jeżeli risk acceptance brzmiało „SVG upload jest bezpieczny, bo pliki są sanitizowane”, nowe dane podważają założenie:

control: SVG_SANITIZER property: untrusted SVG cannot execute active content confidence: reduced action: revalidate

Historia projektu i warstwy ochrony

Repozytorium miało wcześniejsze advisories o bypassach; jeden starszy problem uznano później za false positive i advisory wycofano — cenna lekcja vulnerability data quality: w złożonych parserach możliwe są zarówno false negatives, jak i false positives. Jeśli SVG nie jest wymagane, wyłączenie formatu usuwa całą klasę złożoności; jeśli jest, warto łączyć sanitize + rasterize/re-render + CSP + isolated origin + block external references.

Wniosek

Cztery advisories jednego dnia są ważniejsze jako rodzina niż jako cztery osobne wpisy. VE powinien pytać, czy compensating control naprawdę gwarantuje security property, czy tylko blokuje znane reprezentacje ataku.

Powiązane na blogu

Źródła

Nota redakcyjna: stan informacji 2 września 2026. darylldoyle/svg-sanitizer opublikował 01.09 cztery advisories dotyczące bypassów kontroli i DoS. Artykuł traktuje je jako rodzinę problemów semantic equivalence across parsers i koncentruje się na variant analysis oraz revalidacji wyjątków.

Zapamiętaj jedno

Cztery advisories jednego dnia są ważniejsze jako rodzina niż jako cztery osobne wpisy — pokazują semantic equivalence across parsers. Jeśli sanitizer jest compensating control dla uploadu SVG, nowe dane podważają samo założenie i wymagają revalidacji wyjątków.