|
|
MsMpEng: UIF decoder will spin forever processing sparse blocks | |
| Project Member Reported by taviso@google.com, May 1 2017 | Back to list | |
The UIF (Universal Image Format) is a proprietary file format used by the old shareware utility MagicISO. Microsoft have a dedicated unpacker for UIF that runs as SYSTEM on all filesystem activity (!?!).
The UIF format has an index structure at a fixed offset from the end of the file, with a pointer to contiguous block descriptions that describe how to reconstruct the output from data scattered throughout the file. I noticed that UIF has a "sparse" block type that just outputs chunks of nuls. Microsoft write them out like this:
while (write(TempFile, Buffer, SectorSize) == SectorSize)
BytesWritten += SectorSize;
All of these parameters are read from the file, so you can make it spin creating this sparse data for as long as you want. This means you can make a file that takes as long as you want to scan, wasting as many cores as you want and you have to reboot to fix it.
A testcase and the C code I used to generate it is attached. I called it .gif, but I don't think file extension is relevant to this attack.
I'm filing this with low priority, but I suppose you could DoS an ForeFront, IIS, or Exchange server with it quite effectively, I don't know.
// Compile:
// $ gcc -o uifspin uifspin.c -lz
//
// Usage:
// $ ./uifspin > testcase.txt
//
// (Or, you can provide a template file, and it will append a testcase to it)
//
// $ ./uifspin template.gif > testcase.gif
// $ file testcase.gif
// testcase.gif: GIF image data, version 89a, 400 x 300
//
This bug is subject to a 90 day disclosure deadline. After 90 days elapse
or a patch has been made broadly available, the bug report will become
visible to the public.
Project Member
Comment 1
by
taviso@google.com,
May 1 2017
,
May 9 2017
Update today, looks like they fixed this minor issue at the same time as issue 1252 . --------------- Hey Tavis, I just wanted to let you know that this issue (GPZ 1248) was classified and fixed as a defense-in-depth release which was bundled with the RCE vulnerability fix for Windows Defender last night. Thank you for reporting both issues to us, and I look forward to working with you again on future cases. --------------- |
||
| ► Sign in to add a comment | ||