Dompdf 2.0.1 zawiera podatność umożliwiającą ominięcie walidacji URI podczas przetwarzania plików SVG poprzez użycie wielkich liter w tagach `<image>`. Na systemach z PHP poniżej 8.0.0 może to prowadzić do zdalnego wykonania kodu (RCE) poprzez mechanizm deserializacji PHP z użyciem wrappera `phar`.
▸ Pokaż oryginał (EN)
Dompdf is an HTML to PDF converter. The URI validation on dompdf 2.0.1 can be bypassed on SVG parsing by passing `<image>` tags with uppercase letters. This may lead to arbitrary object unserialize on PHP < 8, through the `phar` URL wrapper. An attacker can exploit the vulnerability to call arbitrary URL with arbitrary protocols, if they can provide a SVG file to dompdf. In PHP versions before 8.0.0, it leads to arbitrary unserialize, that will lead to the very least to an arbitrary file deletion and even remote code execution, depending on classes that are available.
Walidacja URI w Dompdf weryfikuje, czy adresy URL w plikach SVG są dozwolone, jednak sprawdzenie to można ominąć, podając tagi `<image>` z nazwami zapisanymi wielkimi literami (np. `<IMAGE>`). Atakujący, który może dostarczyć dowolny plik SVG do Dompdf, może w ten sposób wywołać żądania do dowolnych adresów URL z wykorzystaniem dowolnych protokołów. Na PHP w wersjach przed 8.0.0 możliwe jest użycie wrappera `phar://`, co prowadzi do niekontrolowanej deserializacji obiektów PHP (arbitrary object unserialize). W zależności od klas dostępnych w środowisku PHP skutkuje to co najmniej arbitralnym usunięciem plików, a w najgorszym przypadku pełnym zdalnym wykonaniem kodu.
Atakujący może uzyskać zdalne wykonanie kodu (RCE) na serwerze lub co najmniej doprowadzić do arbitralnego usuwania plików. Podatność ma maksymalny wynik CVSS 10.0, ponieważ nie wymaga uwierzytelnienia ani interakcji użytkownika.
Należy zaktualizować Dompdf do wersji 2.0.2, w której błąd został naprawiony (commit 7558f07f). Dostępne pod adresem: https://github.com/dompdf/dompdf/releases/tag/v2.0.2. Dodatkowo zaleca się migrację do PHP 8.0.0 lub nowszego, co eliminuje wektor ataku oparty na deserializacji przez wrapper `phar`.
Dompdf w wersji 2.0.1 działający na PHP w wersjach poniżej 8.0.0. W nowszych wersjach PHP (8.0.0+) wpływ ogranicza się do możliwości wywołania żądań do dowolnych URL z dowolnymi protokołami.
Podatność dotyczy wyłącznie scenariuszy, w których aplikacja umożliwia użytkownikom dostarczanie plików SVG przetwarzanych przez Dompdf. Krytyczność ataku (RCE) materializuje się tylko na środowiskach z PHP < 8.0.0.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:HDompdf Project Dompdf
APPDompdf Project2.0.1
Powiązane podatności
XXE w parserze SVG biblioteki dompdf umożliwia SSRF i PHAR deserialization
RCE przez PHAR deserialization w DomPDF przed wersją 2.0.0
Dompdf: bypass ochrony URL przez rozbieżność parsera atrybutów SVG
Dompdf 1.2.1 — RCE przez plik .php w dyrektywie @font-face CSS
registerFont in FontMetrics.php in Dompdf before 2.0.1 allows remote file inclusion because a URI validation f...