Wtyczka PhastPress do WordPress w wersjach do 3.7 włącznie zawiera krytyczną podatność umożliwiającą nieuwierzytelnionym atakującym odczyt dowolnych plików z serwera, w tym pliku wp-config.php. Podatność wynika z niespójności w walidacji rozszerzeń plików i jest szczególnie groźna, ponieważ nie wymaga żadnego uwierzytelnienia.
▸ Pokaż oryginał (EN)
The PhastPress plugin for WordPress is vulnerable to Unauthenticated Arbitrary File Read via null byte injection in all versions up to, and including, 3.7. This is due to a discrepancy between the extension validation in `getExtensionForURL()` which operates on URL-decoded paths, and `appendNormalized()` which strips everything after a null byte before constructing the filesystem path. This makes it possible for unauthenticated attackers to read arbitrary files from the webroot, including wp-config.php, by appending a double URL-encoded null byte (%2500) followed by an allowed extension (.txt) to the file path.
Podatność polega na niespójności między dwoma funkcjami przetwarzającymi ścieżki plików: `getExtensionForURL()` waliduje rozszerzenie na zdekodowanej ścieżce URL, natomiast `appendNormalized()` obcina ścieżkę przy napotkaniu null byte przed zbudowaniem rzeczywistej ścieżki systemowej. Atakujący może dołączyć do żądanej ścieżki podwójnie zakodowany null byte (`%2500`) a następnie dozwolone rozszerzenie (np. `.txt`), co powoduje że walidacja rozszerzenia jest spełniona, lecz system plików odczytuje plik wskazany przed null bytem. W efekcie możliwy jest dostęp do dowolnych plików w katalogu webroot bez jakiegokolwiek uwierzytelnienia.
Nieuwierzytelniony atakujący może odczytać dowolne pliki dostępne z poziomu webroot, w tym krytyczny plik wp-config.php zawierający dane dostępowe do bazy danych, klucze tajne WordPress i inne wrażliwe dane konfiguracyjne, co może prowadzić do pełnego przejęcia aplikacji.
Należy zaktualizować wtyczkę PhastPress do wersji wyższej niż 3.7. Zgodnie z dostępnymi referencjami poprawka została wprowadzona w changeset 3418139. Do czasu aktualizacji należy rozważyć tymczasowe wyłączenie wtyczki.
Wtyczka PhastPress dla WordPress we wszystkich wersjach do 3.7 włącznie.
Poprawka dostępna w repozytorium WordPress pod numerem changeset 3418139. Podatność sklasyfikowana jako CWE-158 (Improper Neutralization of Null Byte or NUL Character).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H