Envato Elements - pobierasz co chcesz, ile chcesz

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:

  1. Formularz musi mieć opcję przesyłania plików
  2. Należy zgadnąć, w jakim podkatalogu o losowej nazwie zostanie plik zapisany
  3. Trzeba zdążyć z działaniem przed skasowaniem pliku z serwera, co następuje po przesłaniu wiadomości
  4. 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)
  5. 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.

(!) Zgłoś błąd na stronie

Zapraszam do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!