В феврале 2017 года специалисты Google Project Zero не стали ждать, пока компания Microsoft выпустит патчи, и раскрыли детали о новом баге. Проблему обнаружили в Windows GDI (Graphics Device Interface, а именно — gdi32.dll), и она получила идентификатор CVE-2017-0038. Баг позволяет атакующим использовать метафайлы EMF для доступа к памяти и извлечения из нее информации. А в памяти атакующие могут обнаружить многое. Также проблема осложняется тем, что вредоносный EMF-файл можно скрыть в обычном документе, а способов как-то защититься до выхода патча исследователи не обнаружили. Proof-of-concept такого файла был приложен к отчету Project Zero.
Изначально баг был найден еще в марте 2016 года, наряду с другими проблемами. Большинство из обнаруженных тогда уязвимостей были исправлены еще в июне 2016 года, с выходом бюллетеня безопасности MS16-074. Однако Матеуш Юрчик (Mateusz Jurczyk), обнаруживший исходную проблему, заметил, что некоторые патчи из состава MS16-074 неэффективны, и некоторые уязвимости по-прежнему актуальны.
Напомню, что «вторник обновлений» в прошлом месяце был отложен, и исправлений Microsoft не выпускала. Представители компании пояснили, что такое решение было продиктовано некими «проблемами, возникшими в последнюю минуту, которые могут затронуть некоторых пользователей». И хотя обновления все еще не вышли, с исправлением бага CVE-2017-0038 разработчиков Microsoft опередили специалисты ACROS Security.
Сотрудники ACROS Security сообщили, что временный патч для проблемы в Windows GDI доступен в составе их продукта 0patch. 0patch – это платформа, предназначенная как раз для таких ситуаций, то есть исправления 0-day и других непропатченных уязвимостей, для поддержки продуктов, которые уже не поддерживаются производителями, кастомного софта и так далее.
Патч доступен в составе клиента 0patch Agent, а также может быть загружен отдельно для изучения. Исправление представлено для 64-битной Windows 10, 64-битной Windows 8.1, 64-битной Windows 7 и 32-битной Windows 7.
«Учтите, что когда Microsoft устранит проблему, gdi32.dll будет заменен, и наш патч автоматически прекратит действовать, так как он строго привязан к уязвимой версии DLL», — пишет один из разработчиков 0patch Люка Трейбер (Luka Treiber).
Видеоролик ниже демонстрирует атаку на CVE-2017-0038 до и после применения патча.