W Ghostscript, zestawie narzędzi do przetwarzania, konwersji i generowania dokumentów w formatach PostScript i PDF, odkryto krytyczną lukę (CVE-2021-3781), która pozwala na wykonanie dowolnego kodu podczas przetwarzania specjalnie sformatowanego pliku. Na problem po raz pierwszy zwrócił uwagę Emil Lerner, który opowiedział o tej luce 25 sierpnia na konferencji ZeroNights X w Petersburgu (w swoim wystąpieniu opisał, jak w ramach programów bug bounty wykorzystał tę lukę do uzyskania nagród za demonstrację ataków na usługi AirBNB, Dropbox oraz Yandex.Nieruchomości).
5 września w otwartym dostępie pojawił się działający exploit, który umożliwia atak na systemy z Ubuntu 20.04 poprzez przesłanie do skryptu webowego działającego na serwerze, korzystającego z pakietu php-imagemagick, specjalnie sformatowanego dokumentu udającego obrazek. Wstępne dane sugerują, że taki exploit był w obiegu już od marca. Zgłaszano możliwość ataku na systemy z GhostScript 9.50, jednak okazało się, że luka występuje we wszystkich kolejnych wersjach GhostScript, w tym w wersji 9.55, która jest w fazie rozwoju w Git.
Poprawka została zaproponowana 8 września i po przeglądzie zaakceptowana w repozytorium GhostScript 9 września. Wiele dystrybucji nadal nie naprawiło tego problemu (status publikacji aktualizacji można sprawdzić na stronach Debian, Ubuntu, Fedora, SUSE, RHEL, Arch Linux, FreeBSD, NetBSD). Publikacja wersji GhostScript z poprawką planowana jest do końca miesiąca.
Problem wynika z możliwości obejścia trybu izolacji „-dSAFER” z powodu niewystarczającej weryfikacji parametrów urządzenia Postscript „%pipe%”, co pozwalało na wykonanie dowolnych poleceń shell. Na przykład, aby uruchomić narzędzie id w dokumencie, wystarczyło podać linię „(%pipe%/tmp/&id)(w)file” lub „(%pipe%/tmp/;id)(r)file”.
Przypominamy, że luki w Ghostscript stanowią poważne zagrożenie, ponieważ ten pakiet jest wykorzystywany w wielu popularnych aplikacjach do przetwarzania formatów PostScript i PDF. Na przykład, Ghostscript jest wywoływane podczas tworzenia miniatur na pulpicie, przy indeksowaniu danych w tle oraz podczas konwersji obrazów. Aby zrealizować atak, w wielu przypadkach wystarczy po prostu przesłać plik z exploitem lub przeglądać katalog z nim w menedżerze plików obsługującym wyświetlanie miniatur dokumentów, takim jak Nautilus.
Luki w Ghostscript można również wykorzystywać poprzez przetwarzacze obrazów oparte na pakietach ImageMagick i GraphicsMagick, przekazując im plik JPEG lub PNG, w którym zamiast obrazu znajduje się kod PostScript (taki plik zostanie przetworzony w Ghostscript, ponieważ typ MIME jest rozpoznawany na podstawie zawartości, a nie na podstawie rozszerzenia).
Źródło: opennet.ru
