ThinkPHP 5.0.23 zawiera podatność umożliwiającą zdalne wykonanie kodu (RCE) bez uwierzytelnienia. Atakujący może wykonać dowolny kod PHP z uprawnieniami aplikacji, co stanowi krytyczne zagrożenie dla każdego serwera opartego na tej wersji frameworka.
▸ Pokaż oryginał (EN)
ThinkPHP 5.0.23 contains a remote code execution vulnerability that allows unauthenticated attackers to execute arbitrary PHP code by invoking functions through the routing parameter. Attackers can craft requests to the index.php endpoint with malicious function parameters to execute system commands with application privileges.
Podatność wynika z braku odpowiedniej walidacji parametrów routingu w endpoincie index.php. Nieuwierzytelniony atakujący może spreparować żądanie HTTP zawierające złośliwe parametry funkcji, które są następnie przekazywane do mechanizmu wywoływania funkcji frameworka (invokeFunction). W ten sposób atakujący może wywołać dowolną funkcję PHP, w tym funkcje systemowe umożliwiające wykonanie poleceń powłoki z uprawnieniami procesu aplikacji webowej.
Atakujący bez żadnego uwierzytelnienia może wykonać dowolne polecenia systemowe na serwerze z uprawnieniami aplikacji, co może prowadzić do pełnego przejęcia kontroli nad serwerem, kradzieży danych lub instalacji złośliwego oprogramowania.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się natychmiastową aktualizację frameworka ThinkPHP do wersji wyższej niż 5.0.23 oraz ograniczenie dostępu do endpointu index.php na poziomie firewall w przypadku braku możliwości natychmiastowego wdrożenia aktualizacji.
ThinkPHP w wersji 5.0.23
Publicznie dostępny exploit dla tej podatności jest opublikowany w bazie Exploit-DB (exploit nr 45978), co znacząco obniża próg wejścia dla potencjalnych atakujących.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XThinkphp
APPThinkphp5.1.315.0.0 – 5.0.23 (bez)
Powiązane podatności
RCE w funkcji read sterownika szablonów ThinkPHP 5.0.24
RCE w ThinkPHP 3 — wykonanie kodu przez komponent index.php
RCE w ThinkPHP 5.1 przez funkcję routecheck
ThinkPHP: RCE poprzez deserializację w Index.php (CVE-2024-48112)
Krytyczna podatność deserialization RCE w ThinkPHP v6.1.3–v8.0.4