Podatność w module Qt SVG powoduje, że przetwarzanie pliku SVG zawierającego element <pattern> może wywołać niekończącą się rekurencję, prowadzącą do przepełnienia stosu (stack overflow) i awarii aplikacji. Zagrożenie jest poważne, ponieważ wystarczy otworzyć specjalnie spreparowany plik SVG, aby doprowadzić do odmowy usługi (DoS).
▸ Pokaż oryginał (EN)
When the module renders a Svg file that contains a <pattern> element, it might end up rendering it recursively leading to stack overflow DoS
Moduł renderujący SVG w Qt, podczas przetwarzania elementu <pattern>, może wielokrotnie wywoływać samego siebie w sposób rekurencyjny. Nie istnieje odpowiednie zabezpieczenie ograniczające głębokość tej rekurencji (CWE-674 — niekontrolowana rekurencja). W konsekwencji stos wywołań ulega przepełnieniu, co skutkuje awaryjnym zakończeniem procesu aplikacji.
Atakujący może spowodować awarię (crash) każdej aplikacji wykorzystującej moduł Qt SVG do renderowania plików, co skutkuje odmową usługi (DoS). Wysoki wpływ na poufność, integralność i dostępność zarówno w kontekście samego procesu, jak i systemu wskazuje na możliwość szerszych konsekwencji niż wyłącznie niedostępność usługi.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — poprawka dostępna do wglądu pod adresem: https://codereview.qt-project.org/c/qt/qtsvg/+/654200. Do czasu wdrożenia patcha zaleca się unikanie renderowania niezaufanych plików SVG za pomocą komponentów Qt SVG.
Komponenty Qt SVG (moduł qtsvg) — konkretne wersje wskazane w referencjach producenta (patch dostępny w repozytorium Qt Code Review).
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:P/AU:X/R:X/V:X/RE:H/U:Red