Luka w PHP 4/5

8 października 2006 0 przez Michał Tomaszkiewicz

Funkcja symlink() może zostać wykorzystana do uzyskania dostępu do plików poprzez ominięcie restrykcji zdefiniowanych w open_basedir.

Funkcja open_basedir pozwala na ograniczenie dostępu do plików znajdujących w katalogach innych użytkowników. Gdy następuje odwołanie do pliku, PHP sprawdza czy dostęp jest dozwolony.

Pomiędzy sprawdzeniem uprawnień a dokonaniem operacji na pliku mija na tyle dużo czasu, że specjalnie przygotowanym skryptem można w niektórych wypadkach podmienić obiekt operacji na plik, do którego normalnie nie ma się dostępu.

Na chwilę obecną jedynym zabezpieczeniem przed wykorzystaniem luki jest wyłączenie funkcji symlink() na czas używania open_basedir.