Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Jak przez upload zwykłego pliku .png można czytać dowolne pliki z serwera? Podatność w bibliotece ImageMagick (CVE-2022-44268)
W telegraficznym skrócie:
- ImageMagick to popularna biblioteka służąca do obróbki obrazów.
- Podatność, o której mowa w tytule została załatana w listopadzie 2022 roku.
- 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).
- 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
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.
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ć.
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
Jak nie było łat jak w artykule jest napisane, że załatano w listopadzie 2022 ?