DomPDF w wersjach przed 2.0.0 jest podatny na deserializację obiektów PHP przez protokół PHAR, co może prowadzić do zdalnego wykonania kodu (RCE). Podatność jest szczególnie groźna w środowiskach używających frameworków z udokumentowanymi łańcuchami POP, takich jak Laravel.
▸ Pokaż oryginał (EN)
DomPDF before version 2.0.0 is vulnerable to PHAR deserialization due to a lack of checking on the protocol before passing it into the file_get_contents() function. An attacker who can upload files of any type to the server can pass in the phar:// protocol to unserialize the uploaded file and instantiate arbitrary PHP objects. This can lead to remote code execution, especially when DOMPdf is used with frameworks with documented POP chains like Laravel or vulnerable developer code.
Aplikacja nie weryfikuje protokołu przekazywanego do funkcji file_get_contents(), co pozwala atakującemu na podstawienie URI z prefixem phar://. Jeśli atakujący jest w stanie wgrać na serwer plik dowolnego typu (np. przez formularz uploadu), może spreparować archiwum PHAR zawierające zserializowane obiekty PHP. Przekazanie ścieżki phar:// do podatnej funkcji powoduje automatyczną deserializację metadanych archiwum i instantiację dowolnych klas PHP dostępnych w aplikacji. W połączeniu z istniejącymi łańcuchami POP (Property-Oriented Programming) możliwe jest wykonanie dowolnego kodu po stronie serwera.
Atakujący może uzyskać pełną kontrolę nad serwerem poprzez zdalne wykonanie kodu (RCE), a także naruszyć poufność, integralność i dostępność danych przetwarzanych przez aplikację.
Należy zaktualizować DomPDF do wersji 2.0.0 lub nowszej, która zawiera weryfikację protokołu przed przekazaniem wartości do file_get_contents(). Poprawka dostępna w commicie 99aeec1efec9213e87098d42eb09439e7ee0bb6a. Dodatkowo zaleca się ograniczenie możliwości wgrywania plików przez nieuwierzytelnionych lub nieupoważnionych użytkowników oraz walidację rozszerzeń i typów MIME przesyłanych plików.
DomPDF w wersjach przed 2.0.0 (projekt dompdf/dompdf).
Podatność jest szczególnie ryzykowna w aplikacjach opartych na frameworku Laravel lub innym środowisku posiadającym udokumentowane łańcuchy POP, co znacząco ułatwia eskalację do pełnego RCE.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDompdf Project Dompdf
APPDompdf Project< 2.0.0
Powiązane podatności
XXE w parserze SVG biblioteki dompdf umożliwia SSRF i PHAR deserialization
Dompdf is an HTML to PDF converter written in php. Due to the difference in the attribute parser of Dompdf and...
Dompdf is an HTML to PDF converter. The URI validation on dompdf 2.0.1 can be bypassed on SVG parsing by passi...
Dompdf 1.2.1 allows remote code execution via a .php file in the src:url field of an @font-face Cascading Styl...
registerFont in FontMetrics.php in Dompdf before 2.0.1 allows remote file inclusion because a URI validation f...