Информационная безопасностьНовости

Баг шестилетней давности опасен для большинства программ для работы с PDF

В 2011 году на мероприятии Chaos Communication Camp исследователь Андреас Бог (Andreas Bogk) рассказал об уязвимости, найденной в составе Evince, популярного просмотрщика документов для Linux.

Оригинальный баг затрагивал работу парсера Evince и позволял использовать PDF-файл с определенной структурой для создания бесконечного loop’а, который оттягивал на себя все ресурсы компьютера, быстро провоцировал нехватку памяти и «падение» самого Evince. Тогда проблема почти не привлекла к себе внимания, так как затрагивала лишь малое число Linux-дескопов и не могла рассматриваться как серьезная брешь в безопасности.

Теперь, шесть лет спустя, немецкий разработчик Ханно Бек (Hanno Böck) обнаружил, что старый баг по-прежнему актуален и представляет угрозу. Бек предупреждает, что многие современные программы для работы с PDF-файлами подвержены той же проблеме, что и Evince.

Так, исследователь использовал фаззинг и сумел загнать в такой же бесконечный цикл PDFium, библиотеку, которая позволяет Chrome рендерить PDF-документы непосредственно внутри браузера, не прибегая к помощи плагинов. Аналогичная проблема наблюдается и в библиотеке pdf.js, отвечающей за те же функции в Firefox. Pdf.js также позволяет использовать GitHub для ренедеринга PDF-документов в рамках веб-интерфейса, то есть пользователю не приходится скачивать файл и просматривать его в стороннем приложении. Бек пишет, что GitHub-имплементация тоже уязвима перед старой проблемой.

Кроме того, уязвимой были признана библиотека Windows Runtime PDF Renderer или же WinRT PDF. Она отвечает не только за работу встроенного PDF-просмотрщика в Edge, но также является приложением по умолчанию для просмотра PDF-файлов в Windows 8 и более новых версиях ОС. Также баг представляет опасность для опенсорсных парсеров Ghostscript и QPDF и, вероятнее всего, для всех проектов, которые их используют.

Для обычного Adobe Reader и встроенного в macOS PDF-просмотрщика проблема опасности не несет.

Теперь Бек критикует разработчиков уязвимых решений, так как они, очевидно, не поддерживают в актуальном состоянии свои тестовые комплекты. Такие наборы должны содержать полный спектр проблемных PDF-файлов, с которыми продукт разработчиков должен справляться без каких-либо проблем. Однако исследование Бека наглядно демонстрирует, что мало кто из разработчиков обременяет себя проведением надлежащих тестов. Эксперт рекомендует проверять приложения для работы с PDF с помощью этого демонстрационного файла, который создал еще Андреас Бог в 2011 году.

Фото: Depositphotos