Podatność deserializacji w komponencie \controller\Index.php frameworka ThinkPHP w wersjach od 6.1.3 do 8.0.4 umożliwia nieuwierzytelnionym atakującym zdalne wykonanie dowolnego kodu. Ze względu na brak wymagań dotyczących uwierzytelnienia oraz sieciowy wektor ataku stanowi krytyczne zagrożenie dla każdej aplikacji opartej na podatnych wersjach frameworka.
▸ Pokaż oryginał (EN)
A deserialization vulnerability in the component \controller\Index.php of Thinkphp v6.1.3 to v8.0.4 allows attackers to execute arbitrary code.
Podatność wynika z niebezpiecznego deserializowania danych wejściowych dostarczanych przez użytkownika w komponencie \controller\Index.php. Atakujący może przesłać specjalnie spreparowany, złośliwy payload serializowany (tzw. gadget chain), który podczas procesu deserializacji zostaje wykonany przez serwer z uprawnieniami aplikacji. Mechanizm (CWE-502) polega na tym, że aplikacja deserializuje dane z niezaufanego źródła bez odpowiedniej walidacji ich zawartości, co umożliwia manipulację logiką wykonania.
Atakujący może uzyskać pełną kontrolę nad serwerem — wykonać dowolny kod (RCE), odczytać lub zmodyfikować dane oraz doprowadzić do całkowitego naruszenia poufności, integralności i dostępności systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się niezwłoczną aktualizację frameworka ThinkPHP do wersji wyższej niż 8.0.4 oraz monitorowanie repozytoriów projektu (https://github.com/top-think/think) w celu śledzenia wydań z poprawkami bezpieczeństwa.
ThinkPHP w wersjach od 6.1.3 do 8.0.4 (komponent \controller\Index.php)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HThinkphp
APPThinkphp6.1.3 – 8.0.4
Powiązane podatności
ThinkPHP 5.0.23 — zdalne wykonanie kodu przez parametr routingu (RCE)
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
Krytyczna podatność deserialization RCE w ThinkPHP v6.1.3–v8.0.4