Funkcja read w pliku thinkphp\library\think\template\driver\File.php w ThinkPHP 5.0.24 zawiera podatność umożliwiającą zdalne wykonanie kodu (RCE). Luka jest krytyczna — nie wymaga uwierzytelnienia ani interakcji użytkownika, a atakujący może ją wykorzystać przez sieć.
▸ Pokaż oryginał (EN)
The read function in file thinkphp\library\think\template\driver\File.php in ThinkPHP 5.0.24 contains a remote code execution vulnerability.
Podatność sklasyfikowana jako CWE-98 (PHP Remote File Inclusion) wskazuje na nieprawidłową neutralizację dyrektyw include/require w języku PHP. Funkcja read odpowiedzialna za wczytywanie plików szablonów nie waliduje prawidłowo dostarczanych danych wejściowych, co pozwala atakującemu na wstrzyknięcie lub wskazanie złośliwego pliku do dołączenia i wykonania przez interpreter PHP. Atak nie wymaga żadnych uprawnień ani wcześniejszego uwierzytelnienia.
Atakujący może zdalnie wykonać dowolny kod PHP na serwerze, co w praktyce oznacza pełne przejęcie kontroli nad aplikacją i potencjalnie całym serwerem, w tym dostęp do poufnych danych, modyfikację zasobów oraz naruszenie dostępności systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Do czasu wdrożenia poprawki zaleca się ograniczenie dostępu do aplikacji na poziomie firewall oraz monitorowanie podejrzanych żądań HTTP.
ThinkPHP w wersji 5.0.24
W referencjach opublikowano publicznie proof-of-concept (gist.github.com), co zwiększa ryzyko aktywnego wykorzystania podatności w krótkim czasie.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HThinkphp
APPThinkphp5.0.24
Powiązane podatności
ThinkPHP 5.0.23 — zdalne wykonanie kodu przez parametr routingu (RCE)
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