W module plistlib języka Python do wersji 3.9.1 wykryto podatność typu XML External Entity (XXE), sklasyfikowaną jako krytyczna (CVSS 9.8). Błąd umożliwia atakującemu zdalne odczytanie plików systemowych, wykonanie żądań SSRF lub spowodowanie innych skutków typowych dla ataków XXE.
▸ Pokaż oryginał (EN)
An XML External Entity (XXE) issue was discovered in Python through 3.9.1. The plistlib module no longer accepts entity declarations in XML plist files to avoid XML vulnerabilities.
Moduł plistlib, służący do parsowania plików plist w formacie XML, akceptował deklaracje encji zewnętrznych (entity declarations) w przetwarzanych dokumentach. Atakujący mógł dostarczyć specjalnie spreparowany plik plist zawierający złośliwe odwołania do encji zewnętrznych (XXE), które były rozwiązywane przez parser XML. Prowadziło to do nieautoryzowanego odczytu zasobów lokalnych lub sieciowych dostępnych z poziomu serwera przetwarzającego plik. Podatność wynika z braku odpowiednich zabezpieczeń parsera XML przed zewnętrznymi encjami (CWE-611).
Atakujący może uzyskać nieautoryzowany dostęp do poufnych danych (np. plików lokalnych systemu), przeprowadzić atak SSRF lub doprowadzić do naruszenia integralności i dostępności systemu — wszystko bez konieczności uwierzytelnienia.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Poprawka polega na wyłączeniu obsługi deklaracji encji zewnętrznych w module plistlib. Użytkownicy Debian Linux powinni zastosować aktualizacje ogłoszone w listach debian-lts-announce (wrzesień/październik 2023). Użytkownicy Fedory powinni zastosować aktualizacje wskazane w listach Fedora package-announce.
Python do wersji 3.9.1 (włącznie) oraz systemy Debian Linux korzystające z podatnych pakietów Python
Poprawka w module plistlib polega na całkowitym zaprzestaniu akceptowania deklaracji encji w plikach XML plist, co eliminuje klasę podatności XXE dla tego modułu. Szczegóły błędu dostępne w zgłoszeniu bugs.python.org/issue42051.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDebian
OSDebian10.0Python
APPPython< 3.6.133.7.0 – 3.7.10 (bez)3.8.0 – 3.8.7 (bez)3.9.0 – 3.9.1 (bez)
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