Podatność PHP object injection w opartym na Laravel oprogramowaniu forum projektu Monero umożliwia zdalnemu atakującemu wykonanie dowolnego kodu bez uwierzytelnienia. Wynika z niebezpiecznego przetwarzania niezaufanych danych wejściowych w endpoincie /get/image/, co przy CVSS 10.0 czyni ją podatnością krytyczną.
▸ Pokaż oryginał (EN)
A PHP objection injection vulnerability exists in the Monero Project’s Laravel-based forum software due to unsafe handling of untrusted input in the /get/image/ endpoint. The application passes a user-supplied link parameter directly to file_get_contents() without validation. MIME type checks using PHP’s finfo can be bypassed via crafted stream filter chains that prepend spoofed headers, allowing access to internal Laravel configuration files. An attacker can extract the APP_KEY from config/app.php, forge encrypted cookies, and trigger unsafe unserialize() calls, leading to reliable remote code execution.
Aplikacja przekazuje dostarczony przez użytkownika parametr 'link' bezpośrednio do funkcji file_get_contents() bez walidacji. Weryfikacja typu MIME za pomocą PHP finfo może zostać ominięta przez spreparowane łańcuchy filtrów strumieniowych (stream filter chains), które dołączają sfałszowane nagłówki — pozwala to uzyskać dostęp do wewnętrznych plików konfiguracyjnych Laravel. Atakujący odczytuje wartość APP_KEY z pliku config/app.php, a następnie fałszuje zaszyfrowane ciasteczka (cookies), co prowadzi do wywołania niebezpiecznej funkcji unserialize() i finalnie do niezawodnego remote code execution.
Atakujący może przejąć pełną kontrolę nad serwerem, wykonując dowolny kod zdalnie bez jakiegokolwiek uwierzytelnienia. W wyniku ataku możliwe jest przejęcie całego środowiska aplikacji, w tym danych użytkowników forum.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Dodatkowo zaleca się: wyłączenie publicznego dostępu do endpointu /get/image/, wdrożenie restrykcyjnej walidacji parametrów wejściowych po stronie serwera, rotację wartości APP_KEY oraz unieważnienie wszystkich istniejących sesji i ciasteczek.
Oprogramowanie forum projektu Monero Project oparte na frameworku Laravel; konkretne wersje wskazane w referencjach producenta
Podatność opisana w szczegółowym write-upie dostępnym pod adresem https://swap.gs/posts/monero-forums/ oraz w bazie VulnCheck. CWE-20 (improper input validation), CWE-502 (deserialization of untrusted data), CWE-829 (inclusion of functionality from untrusted control sphere).
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/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:X