Podatność w komponencie paraparser biblioteki ReportLab przed wersją 3.5.31 umożliwia zdalne wykonanie kodu (RCE). Atakujący może dostarczyć spreparowany dokument XML zawierający element unichar z osadzonym kodem Python, który zostanie wykonany po stronie serwera.
▸ Pokaż oryginał (EN)
paraparser in ReportLab before 3.5.31 allows remote code execution because start_unichar in paraparser.py evaluates untrusted user input in a unichar element in a crafted XML document with '<unichar code="' followed by arbitrary Python code, a similar issue to CVE-2019-17626.
Funkcja start_unichar w pliku paraparser.py przetwarza element XML o nazwie unichar, którego atrybut code jest przekazywany bezpośrednio do ewaluacji jako kod Python — bez żadnej walidacji ani sandboxingu. Atakujący konstruuje dokument XML zawierający sekwencję '<unichar code="' po której umieszcza dowolny kod Python. Gdy aplikacja korzystająca z ReportLab renderuje taki dokument, osadzony kod zostaje wykonany w kontekście procesu serwera. Problem jest analogiczny do wcześniej zgłoszonej podatności CVE-2019-17626.
Atakujący bez uwierzytelnienia może wykonać dowolny kod Python na serwerze przetwarzającym dokument, co skutkuje pełnym przejęciem kontroli nad systemem, w tym możliwością odczytu i modyfikacji danych oraz dalszego lateral movement w sieci.
Należy zaktualizować ReportLab do wersji 3.5.31 lub nowszej. Użytkownicy Debian Linux powinni zastosować patche udostępnione przez projekt Debian LTS (ogłoszenie debian-lts-announce 2023/09). Należy unikać przetwarzania niezaufanych dokumentów XML przez podatne wersje biblioteki.
ReportLab przed wersją 3.5.31; podatność dotyczy również pakietów ReportLab dystrybuowanych w ramach Debian Linux
Podatność jest podobna do CVE-2019-17626, która dotyczyła analogicznego mechanizmu wykonania kodu w ReportLab. Pomimo daty publikacji CVE (2023-09-20), poprawka w ReportLab została wprowadzona we wcześniejszej wersji 3.5.31 — szczegóły dostępne w pliku CHANGES.md repozytorium projektu.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDebian
OSDebian10.0Reportlab
APPReportlab< 3.5.31
Powiązane podatności
GNU Inetutils telnetd: ominięcie uwierzytelnienia przez zmienną USER
Sudo: eskalacja uprawnień do root poprzez opcję --chroot (CVE-2025-32463)
RCE przez deserializację PHP w Roundcube Webmail (parametr _from)
Erlang/OTP SSH — nieuwierzytelniony RCE (CVSS 10.0)
Apple WebKit: out-of-bounds write umożliwiający ucieczkę z sandbox przeglądarki