Microsoft знала о наличии уязвимости WMF уже давно

17/01/2006 14:35

Как следует из блога Stephen Toulouse, компания Microsoft знала о наличии уязвимости давно. Во времена кооперативной многозадачности функциональность SetAbortProc и callback-функций была необходимым компонентом для обеспечения возможности прерывания печати - даже до появления метафайлов, сообщает bugtraq.ru. В районе 90-го года поддержка wmf была добавлена в Windows 3.0, а функциональность SetAbortProc подправлена для того, чтобы она понимала, когда вызвана из метафайла. В те времена отношение к безопасности было совершенно другим, и метафайлы воспринимались как источник, заслуживающий полного доверия от ОС. Потенциальная опасность записей типа META_ESCAPE, приводящих к вызову SetAbortProc, была замечена чуть позже, и ряд приложений (включая IE) стал их просто игнорировать, так что простое подсовывание web-пользователю wmf-файла не приведет ни к каким проблемам. Однако осталась возможность косвенного их срабатывания - например, с помощью Windows Picture and Fax Viewer (тот самый shimgvw.dll), который конвертирует "чистый" WMF в EMF, честно обрабатывая ту самую злосчастную запись. Собственно говоря, все существующие схемы атаки на данную уязвимости используют тег IFRAME, передающий этот файл оболочке, в которой просмотрщиком wmf-файлов по умолчанию является как раз Windows Picture and Fax Viewer. Причина того, что платформа Win9x отсутствует уязвимость, заключается в том, что в этом семействе ОС существует специальная проверка, которая приводит к тому, что в случае, если приложение не вызывает печать на принтер, приложение никогда не будет обрабатывать вызов SetAbortProc.
Подробности