Centrum koordynacyjne CERT (grupa reagowania na incydenty komputerowe) opublikowało ostrzeżenie o wykryciu luk w zabezpieczeniach dotyczących aplikacji i witryn korzystających z biblioteki ImageMagick w domyślnej konfiguracji do przetwarzania lub konwersji obrazów. Sukcesywna eksploatacja pozwala atakującemu na odczyt i zapis plików w zakresie przyznanych praw dostępu, z którymi działa ImageMagick. Lukom nadano kodową nazwę ImageTragick2, nawiązując do problemu wykrytego w 2016 roku.
W ciągu ostatnich dwóch miesięcy w ImageMagick usunięto około stu luk w zabezpieczeniach, ale problemy, o których ostrzega CERT, nie są spowodowane błędami w kodzie ImageMagick, lecz korzystaniem z domyślnych ustawień, które pozwalają na wywoływanie zewnętrznych przetwarzaczy dla formatów SVG i PostScript.
Przetwarzacz w ImageMagick wybierany jest w zależności od zawartości, a nie rozszerzenia pliku, dlatego jeśli aplikacja filtruje przesyłki na poziomie rozszerzeń, atakujący może przesłać dane w formatach SVG lub PostScript, na przykład podszywając się pod pliki z rozszerzeniem JPEG lub PNG.
Możliwość eksploatacji luk potwierdzono w aplikacjach opartych na Ruby on Rails i WordPressie, ale nie wyklucza się jej wystąpienia w innych projektach wykorzystujących ImageMagick do konwersji obrazów, przycinania i tworzenia miniaturek, takich jak MediaWiki, ownCloud Classic i Redmine. Problem obejmuje także narzędzia AI, które wywołują ImageMagick podczas wykonywania zadań związanych z przetwarzaniem obrazów.
Przedstawione są dwa scenariusze ataku:
- Wywołanie przetwarzacza treści w języku MSL (Magick Scripting Language) poprzez przesłanie specjalnie skonstruowanego obrazu SVG, w którym element zawiera odnośnik „xlink:href” do zasobu z protokołem „MSL:”. ImageMagick interpretuje treść tego zasobu jako skrypt w języku MSL, przy czym w skryptach MSL dozwolone są operacje zapisu i odczytu plików. Poza MSL podobny trik z SVG może być wykorzystany również do przetwarzania innych niebezpiecznych rodzajów treści.
- Wywołanie interpretera Ghostscript do przetwarzania treści w formacie PostScript. Ghostscript uruchamiane jest z flagą „-dSAFER”, która nie ogranicza dostępu do katalogu /tmp, co pozwala atakującemu na odczyt lub modyfikację plików w tym katalogu (na przykład aplikacje mogą tymczasowo przechowywać w /tmp dane sesji oraz przesłane pliki). W Ghostscript regularnie znajdują się też podatności, które pozwalają całkowicie obejść ograniczenie „-dSAFER” (ostatnia taka podatność została ujawniona 10 listopada).
Samo zaktualizowanie ImageMagick nie wystarczy, aby zablokować podatności, konieczna jest zmiana ustawień w pliku /etc/ImageMagick/policy.xml, w którym należy pozostawić jedynie obsługę najpotrzebniejszych formatów i operacji, lub przynajmniej zakazać wywoływania zewnętrznych procesorów dla formatów MSL, MVG, PS, EPS i PDF. Oprócz tego zaleca się izolowanie kodu do konwersji zewnętrznych obrazów w osobnym kontenerze, sprawdzanie plików nie tylko według rozszerzenia, ale także według zawartości oraz ustawienie monitorowania logów ImageMagick w poszukiwaniu awarii i nietypowej aktywności.
<policy domain=»coder» rights=»none» pattern=»MSL»/>
<policy domain=»delegate» rights=»none» pattern=»gs»/>
<policy domain=»coder» rights=»none» pattern=»{PS,PS2,PS3,EPS,EPS2,EPS3,EPI,EPSF,EPSI,EPT,EPT2,EPT3,PDF,AI,EPDF,PDFA,POCKETMOD,XPS,PCL}»/>
Źródło: opennet.ru
