Nullsoft Winamp Heap Overrun Flaw

February 6, 2009

Nullsoft Winamp is a multimedia player application that is capable of playing many formats of audio and video files. Winamp can play AIFF media file which has file extension .aiff. A heap-buffer overrun vulnerability exists in the way that Winamp handles the AIFF files.

The AIFF file consists of a header and followed by chunks. One of the chunks in AIFF file is COMM chunk. The structure of the COMM chunk is as below:

 Type Size Description --------- ----- ------------------------------------ 0x0000 4 "COMM"  0x0004 4 < COMM chunk size > 0x0008 2 < Number of channels(c) > 0x000A 4 < Number of frames(f) > 0x000E 2 < bits/samples(b) > 0x0010 10 < Sample rate > 

The vulnerability is due to the codes allocate a fixed heap buffer, but use the data from "COMM chunk size" field in the file showed above as the counter, which can cause the overrun of the allocated heap butter. A successful exploitation with this vulnerability would allow the attacker to execute arbitrary code on the vulnerable system in the context of the logged in user.

SonicWALL UTM team has developed and released the following IPS signatures.

  • 5262 Nullsoft Winamp AIFF Parsing Heap BO Attempt 1
  • 5363 Nullsoft Winamp AIFF Parsing Heap BO Attempt 2

The signatures have generated the following hits in a few days: