AOL Nullsoft Winamp IT Module "IN_MOD.DLL" Remote Heap Memory Corruption
by Piotr Bania <bania.piotr@gmail.com>
http://www.piotrbania.com
Severity: Important - Potencial remote code execution.
Software affected: Tested on AOL Nullsoft Winamp v5.33 (x86) Feb 13 2007
(on Windows XP SP1/SP2).
Orginal url: http://www.piotrbania.com/all/adv/nullsoft-winamp-it_module-in_mod-adv.txt
0. DISCLAIMER
Author takes no responsibility for any actions with provided informations or
codes. The copyright for any material created by the author is reserved. Any
duplication of codes or texts provided here in electronic or printed
publications is not permitted without the author's agreement.
I. BACKGROUND
AOL Nullsoft is the most popular multimedia player in the world.
in_mod.dll is a one of Winamp plugins.
II. DESCRIPTION
The problem takes place when Winamp is trying to play specially
crafted .IT file.
IT is the proprietary module format used by Impulse Tracker, featuring
support for more advanced features than MOD or S3M before it. These include
a larger limit for lines in a pattern, higher quality samples, and other
effects.
Take a look a this code snipet:
----// SNIP SNIP //-------------------------------------------------
.text:00E97BCA write_looop: ; CODE XREF: sub_E97976+29Dj
.text:00E97BCA mov edx, [ebp+6Ch+arg_0]
.text:00E97BCD mov ecx, [ebx+18h]
.text:00E97BD0 mov dx, [eax+edx*2]
.text:00E97BD4 mov [eax+ecx*2], dx
.text:00E97BD8 mov eax, [ebx+370h]
.text:00E97BDE mov ecx, [ebx+18h]
.text:00E97BE1 mov cx, [eax+ecx*2]
.text:00E97BE5 cmp cx, [esi+6Eh]
.text:00E97BE9 jnb short loc_E97C09
.text:00E97BEB mov al, [ebx+18h]
.text:00E97BEE mov ecx, [ebp+6Ch+arg_0]
.text:00E97BF1 mov [ecx+esi+148h], al ; BANG
.text:00E97BF8 mov eax, [ebx+370h]
.text:00E97BFE cmp word ptr [eax+ecx*2], 0FEh
.text:00E97C04 jnb short loc_E97C09
.text:00E97C06 inc dword ptr [ebx+18h]
.text:00E97C09
.text:00E97C09 loc_E97C09: ; CODE XREF: sub_E97976+273j
.text:00E97C09 ; sub_E97976+28Ej
.text:00E97C09 movzx ecx, word ptr [esi+68h] ; ecx=controlled value (from offset 0x20)
.text:00E97C0D inc [ebp+6Ch+arg_0]
.text:00E97C10 cmp [ebp+6Ch+arg_0], ecx
.text:00E97C13 jb short write_looop
----// SNIP SNIP //-------------------------------------------------
The memory is overwritten at 0x00E97BF1. The description of this disassembly
listing is pretty similiar to the one written in s3m module files advisory.
Due to my lazyness i will not repeat it again, whatsoever.
III. IMPACT
Successful exploitation may allow the attacker to run arbitrary code in
context of user running AOL Nullsoft Winamp.
IV. VENDOR RESPONSE
Due to the fact i was looking for a AOL NULLSOFT contact for over 30 minutes with
no effect, i got finally bored and i haven't notified them at all.
--
--------------------------------------------------------------------
Piotr Bania - <bania.piotr (at) gmail (dot) com [email concealed]> - 0xCD, 0x19
Fingerprint: 413E 51C7 912E 3D4E A62A BFA4 1FF6 689F BE43 AC33
http://www.piotrbania.com - Key ID: 0xBE43AC33
--------------------------------------------------------------------
- "The more I learn about men, the more I love dogs."