CRITICAL🇬🇧 English

CVE-2023-24813

Dompdf: bypass ochrony URL przez rozbieżność parsera atrybutów SVG

CVSS 10.0v3.1pub. 2023-02-07upd. 2024-11-21

Podatność w bibliotece Dompdf (konwerter HTML do PDF) umożliwia atakującemu ominięcie mechanizmów ochrony i wywołanie dowolnych URL z dowolnymi protokołami poprzez spreparowany plik SVG. W środowiskach z PHP poniżej wersji 8.0.0 może to prowadzić do arbitrary unserialize, a w konsekwencji do RCE.

Pokaż oryginał (EN)

Dompdf is an HTML to PDF converter written in php. Due to the difference in the attribute parser of Dompdf and php-svg-lib, an attacker can still call arbitrary URLs with arbitrary protocols. Dompdf parses the href attribute of `image` tags and respects `xlink:href` even if `href` is specified. However, php-svg-lib, which is later used to parse the svg file, parses the href attribute. Since `href` is respected if both `xlink:href` and `href` is specified, it's possible to bypass the protection on the Dompdf side by providing an empty `xlink:href` attribute. An attacker can exploit the vulnerability to call arbitrary URLs with arbitrary protocols if they provide an SVG file to the Dompdf. In PHP versions before 8.0.0, it leads to arbitrary unserialize, which will lead, at the very least, to arbitrary file deletion and might lead to remote code execution, depending on available classes. This vulnerability has been addressed in commit `95009ea98` which has been included in release version 2.0.3. Users are advised to upgrade. There are no known workarounds for this vulnerability.

🤖 Analiza AI
Jak działa

Rozbieżność w sposobie parsowania atrybutów między Dompdf a biblioteką php-svg-lib pozwala na bypass zabezpieczeń. Dompdf podczas analizy tagu `image` honoruje atrybut `xlink:href` nawet jeśli obecny jest atrybut `href`, natomiast php-svg-lib przetwarza tylko `href`. Atakujący może dostarczyć plik SVG zawierający jednocześnie pusty atrybut `xlink:href` i złośliwy `href` — Dompdf nie blokuje żądania (widzi pusty `xlink:href`), a php-svg-lib przetwarza złośliwy `href`. Skutkuje to możliwością wywołania dowolnego URL z dowolnym protokołem, a w PHP przed wersją 8.0.0 dodatkowo prowadzi do arbitrary unserialize.

Skutki

Atakujący może wywołać dowolne URL z dowolnymi protokołami, co przy PHP < 8.0.0 prowadzi co najmniej do arbitralnego usuwania plików, a potencjalnie do pełnego RCE w zależności od dostępnych klas PHP w środowisku docelowym.

Mitygacja

Należy zaktualizować Dompdf do wersji 2.0.3 lub nowszej, która zawiera poprawkę wprowadzoną w commicie `95009ea98`. Producent nie wskazuje żadnych znanych workaroundów — aktualizacja jest jedynym zalecanym rozwiązaniem.

Kogo dotyczy

Dompdf Project Dompdf w wersjach przed 2.0.3; szczególnie narażone są środowiska korzystające z PHP w wersji poniżej 8.0.0

Uwagi

Podatność sklasyfikowana jako CWE-436 (Interpretation Conflict), wynikająca z niespójności interpretacji atrybutów między dwoma komponentami. Poprawka dostępna w repozytorium GitHub pod adresem wskazanym w referencjach.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
  • Dompdf Project Dompdf

    APP
    Dompdf Project
    2.0.2
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
RCE
CWE
Referencje

Powiązane podatności

CVE-2021-3902CRITICAL9.8PL ✓ten sam produkt

XXE w parserze SVG biblioteki dompdf umożliwia SSRF i PHAR deserialization

CVE-2021-3838CRITICAL9.8PL ✓ten sam produkt

RCE przez PHAR deserialization w DomPDF przed wersją 2.0.0

CVE-2023-23924CRITICAL10.0PL ✓ten sam produkt

Dompdf: pominięcie walidacji URI w SVG prowadzące do RCE

CVE-2022-28368CRITICAL9.8PL ✓ten sam produkt

Dompdf 1.2.1 — RCE przez plik .php w dyrektywie @font-face CSS

CVE-2022-41343HIGH7.5ten sam produkt

registerFont in FontMetrics.php in Dompdf before 2.0.1 allows remote file inclusion because a URI validation f...