Żądny wiedzy? Wbijaj na Mega Sekurak Hacking Party w maju! -30% z kodem: majearly

Jak przez upload zwykłego pliku .png można czytać dowolne pliki z serwera? Podatność w bibliotece ImageMagick (CVE-2022-44268)

03 lutego 2023, 17:03 | W biegu | komentarze 4

W telegraficznym skrócie:

  1. ImageMagick to popularna biblioteka służąca do obróbki obrazów.
  2. Podatność, o której mowa w tytule została załatana w listopadzie 2022 roku.
  3. W tytule posta jest małe oszustwo ;-] sam upload obrazka nic nie daje, obrazek musi być jeszcze przetworzony przez podatną bibliotekę ImageMagick (wystarczy np. zmiana rozmiarów uploadowanego obrazka).
  4. Jak wygląda uploadowany/podatny obraz? Mniej więcej tak:

Widzicie tego baita w postaci nazwy pliku do pobrania? (/etc/passwd). Pełne wyjaśnienie jak działa podatność poniżej (na końcu tego wpisu, możecie zobaczyć filmik z demonstracją problemu)

When ImageMagick parses the PNG file, for example in a resize operation, the resulting image could have embedded the content of an arbitrary remote file from the website (if magick binary has permissions to read it).

A malicious actor could craft a PNG or use an existing one and add a textual chunk type (e.g., tEXt). These types have a keyword and a text string. If the keyword is the string “profile” (without quotes) then ImageMagick will interpret the text string as a filename and will load the content as a raw profile, then the attacker can download the resized image which will come with the content of a remote file.

5. Atakujący pobiera z serwera przetworzony png (np. ze zmienionymi wymiarami) – a w środku oczekuje zawartość pliku z serwera.
6. Aktualizujecie biblioteki, z których korzystają Wasze aplikacje (webowe), prawda?
7. Uwaga, bo dostępny jest już prosty exploit, który przygotowuje „specjalny” plik png, który pobiera z serwera zawartość wskazanego przez badacza/hackera pliku.

~Michał Sajdak

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Artur

    Jakaś podatność to jest, ale na poprawnie skonfigurowanym serwerze raczej żadna poważna. Gdyby faktycznie u kogoś dało się odczytać pliki konfiguracyjne to problemem nie jest IM.

    Odpowiedz
    • bq

      Jest. Nie rozumiesz istoty probelmu.

      Mas sobie serwis typu nie wiem, WordPress. Wrzucasz tam obrazek PNG. Klikasz zmniejszenie tego obrazka bo jest za duży i… boom! Nowy, zmniejszony obrazek ma w sobie zawartość dowolnego pliku np „config.php”. Wystarczy go pobrać i zdekodować tekst z ciągu liczb w hex. Jesteś ugotowany.

      Podatność występuje w DOMYŚLNEJ konfiguracji serwera. Ba.. w piątek nie było nawet łat ani workaroundu jak to zabezpieczyć.

      Odpowiedz
      • dd

        Działa równiez z czymś więcej niż tylko zwykłym plikiem, bo mozna mu podać np /dev/sda i wtedy cały dysk będzie wciskał do tego pliku, wtedy oczywiście IM musiałby mieć odpowiednie uprawnienia, a to raczej mało prawdopodobne, no ale taka ciekawostka

        Odpowiedz
      • Randy

        Jak nie było łat jak w artykule jest napisane, że załatano w listopadzie 2022 ?

        Odpowiedz

Odpowiedz