В 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 



5 комментариев

  1. john_

    05.09.2017 at 17:26

    Сколько проблем, которые никто не исправляет… ужас.

  2. Fox_M

    06.09.2017 at 04:25

    Скачал демонстрационный файл — открываю Хромиумом — не ложится система 🙂

  3. creator_of_the_internet

    06.09.2017 at 10:54

    Открыл документ в Okular (часть KDE, версия из репозитория Debian 9), ни к чему плохому это не привело, память не утекла.
    >Evince разрабатывается в рамках проекта GNOME
    Ооок…

  4. Int

    07.09.2017 at 14:34

    Поэтому я отключил pdf.js, это не первый косяк в нём.

  5. Il

    14.09.2017 at 01:10

    Пдф опасный, лучше в браузере его вообще никогда не открывать

Оставить мнение