CVE-2026-106443
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 51 - wyżej niż 51% wszystkich znanych CVE
Streszczenie
WeasyPrint przed wersją 70.0 przekazuje pobrane bajty obrazów z adresów URL HTML, wartości CSS, referencji SVG i URI danych do ogólnego dyspozytora obrazów Pillow bez wykluczania formatów EPS lub PostScript. Na hostach z zainstalowanym Ghostscriptem, wtyczka Pillow EpsImagePlugin wywołuje interpreter dla kontrolowanego przez atakującego PostScriptu, co może prowadzić do zdalnego wykonania kodu, gdy wersja Ghostscript ma obejście sandboxa.
Ocena ryzyka
Atakujący może zdalnie wykonać kod na serwerze, jeśli Ghostscript jest zainstalowany, co może prowadzić do przejęcia systemu lub naruszenia danych.
Rekomendacja
Zaktualizuj WeasyPrint do wersji 70.0 lub nowszej oraz rozważ usunięcie Ghostscripta, jeśli nie jest niezbędny.
Inne podatności w WeasyPrint
Zobacz wszystkie- CVE-2026-55073Średnie
W WeasyPrint przed wersją 70.0, aplikacje serwerowe, które konfigurują restrykcyjny url_fetcher i przekazują wartości kontrolowane przez atakującego do HTML.write_pdf(), mogą ominąć to ograniczenie poprzez opcje xmp_metadata lub stylesheets. W weasyprint/pdf/init.py, xmp_metadata wywołuje select_source() bez url_fetcher dokumentu, co pozwala na odczyt dostępnego lokalnego pliku i osadzenie go w wynikowym PDF. W weasyprint/document.py, stylesheets konstruuje CSS() bez url_fetcher dokumentu, co pozwala na ładowanie lokalnych lub wewnętrznych zasobów i propagowanie permisywnego fetchera przez zagnieżdżone importy CSS i odwołania url(). Kanał stylesheets stosuje pobrane zasoby, ale sam nie ujawnia komentarzy arkuszy stylów.
- CVE-2026-49452Średnie
WeasyPrint przed wersją 69.0 osadza nieucieczone wartości atrybutów HTML jako wskazówki prezentacyjne w CSS w weasyprint/css/__init__.py, gdy presentational_hints=True. Atrybut background jest wstawiany do deklaracji background-image:url() i parsowany przez tinycss2.parse_blocks_contents(), co pozwala niezaufanemu HTML na wstrzyknięcie dodatkowych deklaracji CSS. Aplikacje renderujące niezaufany HTML z włączonymi wskazówkami prezentacyjnymi mogą być podatne na wstrzyknięcie CSS i żądania po stronie serwera przez wstrzyknięte wartości url().
- CVE-2025-68616Wysokie
W WeasyPrint przed wersją 68.0 wykryto obejście ochrony przed SSRF w domyślnym `default_url_fetcher`. Nawet jeśli programista zaimplementował własny `url_fetcher` blokujący dostęp do wewnętrznych zasobów, atakujący może ominąć tę ochronę, ponieważ biblioteka `urllib` automatycznie podąża za przekierowaniami HTTP bez ponownej walidacji nowego celu względem polityki bezpieczeństwa.
Oryginalny opis (angielski, źródło NVD)
WeasyPrint helps web developers to create PDF documents. Prior to 70.0, the image-loading path in weasyprint/images.py passes fetched image bytes from HTML img URLs, CSS image values, SVG image references, and data URIs to Pillow's generic image dispatcher without excluding EPS or PostScript formats. On hosts with Ghostscript installed, Pillow EpsImagePlugin invokes the interpreter for attacker-controlled PostScript, which can produce interpreter-permitted effects and can lead to remote code execution when the installed Ghostscript version has a usable sandbox bypass. Hosts without Ghostscript do not reach this rasterization path. This issue is fixed in version 70.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

