Miliony stron podatne na atak przez głupi błąd w PHP Mailerze.
Takim właśnie tytułem dobreprogramy.pl poinformowały o łatce w phpmailer. Błąd w PHPMailerze, oznaczony jako CVE-2016-10033, otrzymał łatkę 25 grudnia, wraz z wydaniem 5.2.18. Obecnie dostępna jest też wersja PHPMailer 5.2.19.
[Crit. #RCE #0day #vuln] PHPMailer -Patch before the attackers patch it (via a rev. shell ?https://t.co/raJYd6PsFv #infosec #security #php pic.twitter.com/g1a9m8CGFQ
— Dawid Golunski (@dawid_golunski) December 26, 2016
Na ataki są podatne jedynie te strony, które korzystają z funkcji *mail(). *Ci którzy korzystają z wysyłki poczty poprzez SMTP są bezpieczni. W phpmailer zawiodła walidacja danych przesyłanych do funkcji mail()
, co pozwala na wstrzyknięcie dodatkowych parametrów do sendmaila. Odpowiednio przygotowany zestaw parametrów pozwoli na przekazanie uruchamianego kodu do tego demona poczty i zapisanie go do nowego skryptu na serwerze. Skrypt uruchomi się z uprawnieniami serwera WWW. Co gorsza do tej pory nie wyszedł jeszcze żaden patch do WordPress - warto więc załatać dziurę samemu, bo hakerzy już robią swoje i duże botnety skanują na wielką skalę witryny, wyszukując tej podatności, by przejąć kontrolę i zainstalować swoje własne exploity.
Ale to nie koniec historii. Kilka godzin temu Golunski poinformował, że przygotowana łatka jest niewiele warta. Wciąż możliwe jest takie spreparowanie ciągu znaków dostarczonych w internetowym formularzu, by wyrwać się z ochrony zapewnianej przez funkcję escapeshellarg()
zastosowaną w łatce i wywołać sendmaila ze swoimi parametrami. Żadnego oficjalnego zabezpieczenia nie ma, strony internetowe przejmowane są ot tak, bez większego wysiłku.
[#0day Patch Bypass #exploit] Back to square1! All <5.2.20 PHPMailer ver vulnerable #infosec #security #php #php7 https://t.co/9Lkc0QGZmB
— Dawid Golunski (@dawid_golunski) December 28, 2016
Z tego co udało się nam wyczytać wersja 6.0.0 RC3 nie posiada już tych podatności. W WordPress wystarczy podmienić 3 pliki:
wp-includes/class-smtp.php
wp-includes/class-pop3.php
wp-includes/class-phpmailer.php```
lub zainstalować wtyczkę [WP Mail SMTP](https://wordpress.org/plugins-wp/wp-mail-smtp/) i skonfigurować WordPress do wysyłki poprzez SMTP a nie funkcję mail(). Na chwilę obecną nie możemy zrobić nic więcej.