Information Assurance

Dave Schachner



front | classes | research | personal | contact

 

Information Assurance

Bugtraq Analysis

AOL Nullsoft Winamp

Remote Heap Memory Corruption

back to bugtraq analyses page

* What the problem is:

 

            Due to vulnerabilities in several of the dynamically linked libraries (.DLL), specifically LIBSNDFILE.DLL and IN_MOD.DLL, there is the potential of remote code execution in Nullsoft’s Winamp media player.  This can be accomplished through the use of either specially crafted .S3M, .IT or .MAT files.

 

            + MATLAB SOUND FILE - a numerical computing environment and  programming language

 

            + Impulse Tracker - multi-track digital sound tracker

 

            + ScreamTracker 3 PC music tracker - multi-track digital sound tracker

 

            Since the attacker controls the file and therefore the memory entries that will be loaded into the stack when opened, by manipulating the register values he or she can take control of the stack, execute code remotely and even control how many times the write loop iterates, which can cause memory corruption. The exploitation is difficult, because the available memory locations are limited due to the context of the program and how the stack is set up. (“The final address that we can compute from our MY_DWORD value, must be lower then 0x10CFB58. That surely makes the exploitation harder since we are limited to the memory lower then 0x10CFB58.”)

 

* What could have prevented it:

 

·      Bounds/Error checking the file when loading                        

 

* What can be done to work around it:

 

·      Avoid playing unknown files from unknown sources      

 

·      Use other media players, such as VLC, iTunes, WM, etc

 

* What can be done to prevent it from occurring in the future:

 

         Piotr Bania, who discovered the exploits, had apparently been unsuccessfully trying to contact AOL Nullsoft, the creators of Winamp, to inform them of their software flaws.  AOL Nullsoft could release a patch that would fix the vulnerability in the dynamically linked libraries that allow remote memory corruption.  As of writing this, no patch has been released by the company to fix their software.