Dziura w Zend Framework i Linux.Encoder.1

Who use Zend Framework?
W 2012 roku pisałem o podobnej dziurze w Zend Framework. Niestety historia się powtarza i wszelkie wersje Zend Framework włącznie do 2.4.2 oraz 1.12.13 są podatne na atak XXE (XML eXternal Entity Injection), jeśli na przykład wykorzystujecie ZF jako serwer XML-RPC.

Dokładny opis problemu opisał Dawid Goluński już w sierpniu.
Problem jednak w tym, że obecnie z dwóch dużych frameworków dla PHP (Zend Framework i Symfony) nie korzystają tylko twórcy dedykowanych aplikacji. I jeśli nawet nie korzystamy bezpośrednio z tych frameworków, możemy korzystać z rozwiązań, które wykorzystują pośrednio ZF lub Sf. W dzisiejszych czasach musimy mieć oczy dookoła głowy, ponieważ producent (np. Drupal, Magento) może w porę nie zauważyć problemu.

Z powodu luki XXE w ZF problemy mają chociażby osoby korzystające z Magento. 27 października 2015 (prawie 3 miesiące po załataniu w ZF!) został opublikowany patch bezpieczeństwa SUPEE-6788, który rozwiązuje m.in. problem XXE/XEE attack on Zend XML functionality using multibyte payloads.

Zastanawiacie się zapewne co może się Wam stać poprzez taką małą dziurę? Ano możecie zarazić swój serwer ransomware’m Linux.Encoder.1 (napisany w C).
A ten sprytny robak, który potrafi wykorzystać wspomnianą lukę XXE w ZF, szyfruje wszelkie nasze dane (np. /home, /root, /var/lib/mysql). Następnie żąda od nas okupu za klucz odszyfrowujący.

Dlatego, jeśli nie aktualizowaliście ZF w swoich aplikacjach od kilku miesięcy, warto przysiąść i wprowadzić odpowiednie zmiany.