Funkcja PIL.ImageMath.eval w bibliotece Pillow przed wersją 9.0.0 umożliwia ewaluację dowolnych wyrażeń Python, w tym wywołań metody exec oraz wyrażeń lambda. Podatność pozwala nieuwierzytelnionemu atakującemu na zdalne wykonanie kodu (RCE) w kontekście aplikacji korzystającej z biblioteki.
▸ Pokaż oryginał (EN)
PIL.ImageMath.eval in Pillow before 9.0.0 allows evaluation of arbitrary expressions, such as ones that use the Python exec method. A lambda expression could also be used.
Funkcja PIL.ImageMath.eval przyjmuje wyrażenia matematyczne i poddaje je ewaluacji przy użyciu wbudowanego mechanizmu Pythona, bez odpowiedniego ograniczenia dostępnych wbudowanych funkcji i metod. Atakujący może przekazać spreparowane wyrażenie zawierające wywołanie exec lub wyrażenie lambda, co skutkuje wykonaniem dowolnego kodu Pythona. Brak filtrowania niebezpiecznych konstrukcji językowych sprawia, że każdy kod mogący dostarczyć dane wejściowe do tej funkcji staje się potencjalnym wektorem ataku.
Atakujący może wykonać dowolny kod po stronie serwera (RCE), co w praktyce oznacza pełne przejęcie kontroli nad procesem aplikacji, możliwość kradzieży danych, modyfikacji systemu lub dalszego ruchu bocznego (lateral movement) w sieci.
Należy zaktualizować bibliotekę Pillow do wersji 9.0.0 lub nowszej, w której ograniczono dostępne wbudowane funkcje w PIL.ImageMath.eval. Dodatkowe poprawki bezpieczeństwa zostały uwzględnione w wersji 9.0.1. Użytkownicy systemów Debian powinni zastosować patche dostępne poprzez mechanizm aktualizacji Debian LTS zgodnie z referencjami.
Python Pillow w wersjach przed 9.0.0 oraz systemy Debian Linux korzystające z podatnych pakietów Pillow (szczegółowe wersje wskazane w referencjach producenta i komunikatach Debian LTS).
Podatność została naprawiona przez ograniczenie wbudowanych funkcji Pythona dostępnych w kontekście ewaluacji wyrażeń PIL.ImageMath.eval, co opisano w notatkach wydania Pillow 9.0.0.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDebian
OSDebian10.011.09.0Python Pillow
APPPython< 9.0.1
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