В компоненте Chrome для просмотра PDF найдена уязвимость

Выявлена серьезная уязвимость в компоненте браузера Chrome PDFium, предназначенном для показа PDF-документов. С ее помощью злоумышленник может внедрить в PDF-файл вредоносный код, который начнет выполняться при открытии документа.

Чтобы использовать уязвимость, злоумышленнику нужно создать вредоносный PDF-документ с изображением в формате JPEG2000, имеющим измененный заголовок. При открытии документа в Chrome исполнение встроенного в файл кода начнется автоматически.

Уязвимость скрыта в библиотеке OpenJPEG, которая позволяет PDFium работать с форматом JPEG2000. Примечательно, что источником проблемы является не сама библиотека, а особая процедура сборки, применяемая при разработке Chrome. В обычном варианте OpenJPEG переполнение буфера пресечено с помощью оператора assert. В случае с библиотекой, добавленной в Chrome, данный оператор отсутствует. Таким образом, не осуществляется проверка условия, указывающего на вероятное переполнение буфера.

Специалисты Talos показали, как работает уязвимость, на примере PDF-документа, содержащего изображение в формате JPEG2000 с измененным значением маркера SIZ. Маркер указывал на то, что число компонентов равняется нулю. В то же время отсутствовали сведения об индивидуальных компонентах. В результате специалистам удалось спровоцировать сбой в функции, подверженной переполнению буфера.

Эксперты сообщили об ошибке в Google. Проблема была устранена путем замены исчезающего assert на описанное при помощи if условие.