Wczoraj wieczorem na moim telefonie pojawiła się informacja, która sprawiła, że natychmiast odpaliłem system automatycznie aktualizujący wszystkie strony, którymi się opiekuję. Informacja dotyczyła Contact Form 7, czyli jednej z najpopularniejszych wtyczek do formularzy kontaktowych w WordPressie (ponad 5 milionów aktywnych instalacji, i to tylko tych z repozytorium WordPress.org). Nagłówki kolejnych alertów (i informacji) grzmiały o możliwości podrzucenia na serwer np. pliku PHP, a tym samym – przynajmniej potencjalnie, jeśli ktoś nie używa PHP Pools i/lub open_basedir – przejęcia całego serwera. Brzmiało groźnie, więc na szybko, w międzyczasie jak prewencyjnie aktualizowały się strony, postanowiłem przeczytać, co o tej podatności w internetach piszą… Podwójne znaczenie.
Podatność w Contact Form 7 5.3.1 i starszych
Ale by cokolwiek sensownego ustalić, najpierw musiałem przebić się przez alarmujące nagłówki o ponad 5 milionach podatnych stron, a jak liczyć dostęp do całego konta na hostingu czy serwera, to można by pewnie liczyć to w dziesiątkach milionów. Po odfiltrowaniu nagłówków z technopudelków (choć widziałem, że i kilka poważnych serwisów, zajmujących się m.in. bezpieczeństwem, postanowiło w tych klimatach pojechać… ;-)).
Okazało się, że faktycznie, ryzyko istnieje, ale skorzystanie z tej podatności przez kogoś jest prawie tak samo prawdopodobne, jak to, że na spacerze, na który idziemy za kilku minut, spotkam kosmitów. Takich prawdziwych, a nie tylko „umysłowych”.
An unrestricted file upload vulnerability has been found in Contact Form 7 5.3.1 and older versions. Utilizing this vulnerability, a form submitter can bypass Contact Form 7’s filename sanitization, and upload a file which can be executed as a script file on the host server.
Podatność polega na obejściu mechanizmu filtrowania typu plików poprzez zastosowanie podwójnego rozszerzenia (plik.php.jpg), co powoduje, że… Właśnie w tym rzecz, że w tym kontekście najprawdopodobniej powoduje niewiele. Bo by atak się udał, to jak się zdaje:
- Formularz musi mieć opcję przesyłania plików
- Należy zgadnąć, w jakim podkatalogu o losowej nazwie zostanie plik zapisany
- Trzeba zdążyć z działaniem przed skasowaniem pliku z serwera, co następuje po przesłaniu wiadomości
- Serwer musi umożliwiać wykonywanie plików o rozszerzeniach np. plików graficznych (choć możliwe, że mamy do czynienia z jakimś sposobem na „zgubienie” drugiego rozszerzenia, np. za pomocą jakiegoś znaku specjalnego)
- Serwer musi działać na innym webserwerze niż Apache2 (brak obsługi plików .htaccess)
I choć oczywiście każdy z tych elementów jest potencjalnie – mniej lub bardziej – możliwy, to szanse na to, że zdarzą się wszystkie, raczej jest mało prawdopodobne. Ale pewność będziemy mieli gdy poznamy szczegóły błędu, a tymczasem i tak zachęcam do jak najszybszej aktualizacji wtyczki Contact Form 7 do wersji 5.3.2 lub nowszej.
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01