CVE-2026-49452
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 30 - wyżej niż 30% wszystkich znanych CVE
Streszczenie
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().
Ocena ryzyka
Atakujący może wstrzyknąć CSS lub spowodować żądania po stronie serwera, co może prowadzić do wycieku danych lub wykorzystania serwera jako proxy.
Rekomendacja
Zaktualizuj WeasyPrint do wersji 69.0 lub nowszej.
Inne podatności w WeasyPrint
Zobacz wszystkie- CVE-2026-106443Wysokie
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.
- 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-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 69.0, WeasyPrint embeds unescaped HTML presentational-hint attribute values into CSS in weasyprint/css/__init__.py when presentational_hints=True. The background attribute is inserted into a background-image:url() declaration and parsed by tinycss2.parse_blocks_contents(), allowing untrusted HTML to inject additional CSS declarations. Applications that render untrusted HTML with presentational hints enabled can be affected by CSS injection and server-side requests through injected url() values. This issue is fixed in version 69.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

