Serwery z zainstalowanym PHP podatne na zdalne wykonanie kodu

Jak podaje serwis e-matters wersja PHP 5rc3 oraz mniejsze i równe 4.3.7 wraz z wykorzystaniem memory_limit podatne są na zdalne wykonanie kodu.

W czasie, gdy PHP lokuje blok pamięci w pierwszej kolejności sprawdzany jest cache wolnych bloków pamięci, które mają tą samą wielkość. Gdy zostanie odnaleziony szukany blok jest on wówczas „zabierany” z cache i na nim dalej opiera się praca. W przeciwnym wypadku PHP sprawdza czy takie alokowanie nie narusza określonego limitu pamięci i jeżeli tak się dzieje zostaje wywołana procedura zend_error

Aby zabezpieczyć się przed tego typy problemem można zastosować jedno z dwóch rozwiązań. Pierwsze z nich, najprostsze i jak efektywne to wyłączenie funkcji memory_limit . Problem rodzi się, gdy wykorzystujemy tę funkcje, wtedy rozwiązaniem drugim jest już niestety zaktualizowanie podatnej wersje PHP do wersji pozbawionej tego problemu.

Szczegółowe informacje opisujące nieco dokładniej sposób działania błędu dostępne są tutaj.