1. ADVISORY INFORMATION
-----------------------
Product: WinAmp
Vendor URL: www.winamp.com
Type: Pointer Issues [CWE-465]
Date found: 2013-06-05
Date published: 2013-07-01
CVSSv2 Score: 4,4 (AV:L/AC:M/Au:N/C:P/I:P/A:P)
CVE: CVE-2013-4695
2. CREDITS
----------
This vulnerability was discovered and researched by Julien Ahrens from
Inshell Security.
3. VERSIONS AFFECTED
--------------------
WinAmp v5.63, older versions may be affected too.
4. VULNERABILITY DESCRIPTION
----------------------------
An invalid pointer dereference vulnerability has been identified in
WinAmp v5.63.
The application loads the contents of the %APPDATA%\WinAmp\links.xml on
startup (the key lngId="default") and while browsing through the
bookmarks in the Browser view of the GUI, but does not properly validate
the length of the string loaded from the "<link name>" and "<home url>"
keys before using them in a pointer call in the library gen_ff.dll,
which leads to a invalid pointer dereference condition with possible
code execution.
An attacker needs to force the victim to place an arbitrary links.xml
file into the target directory in order to exploit the vulnerability.
Successful exploits can allow attackers to execute arbitrary code with
the privileges of the user running the application. Failed exploits will
result in a denial-of-service condition.
5. PROOF-OF-CONCEPT (DEBUG)
---------------------------
Registers:
EAX E85130FF
ECX 00430043 winamp.00430043
EDX 00D1F5B4
EBX 00000000
ESP 00D1F598
EBP 00D1F5C4
ESI 023D3170
EDI 7C80934A kernel32.GetTickCount
EIP 073D0EE1 gen_ff.073D0EE1
C 0 ES 0023 32bit 0(FFFFFFFF)
P 1 CS 001B 32bit 0(FFFFFFFF)
A 0 SS 0023 32bit 0(FFFFFFFF)
Z 1 DS 0023 32bit 0(FFFFFFFF)
S 0 FS 003B 32bit 7FFDC000(FFF)
T 0 GS 0000 NULL
D 0
O 0 LastErr ERROR_SUCCESS (00000000)
EFL 00000246 (NO,NB,E,BE,NS,PE,GE,LE)
ST0 empty
ST1 empty
ST2 empty
ST3 empty
ST4 empty
ST5 empty
ST6 empty
ST7 empty
3 2 1 0 E S P U O Z D I
FST 0000 Cond 0 0 0 0 Err 0 0 0 0 0 0 0 0 (GT)
FCW 027F Prec NEAR,53 Mask 1 1 1 1 1 1
6. SOLUTION
-----------
Update to latest version v5.64 or newer.
7. REPORT TIMELINE
------------------
2013-06-05: Discovery of the vulnerability
2013-06-06: Vendor acknowledgement of the issue
2013-06-11: Vendor provides custom build that includes a fix
2013-06-12: The issue is still exploitable
2013-06-12: Provided another PoC to clarify the way to exploit
2013-06-13: Vendor provides custom build that includes a fix
2013-06-14: Confirmation that the issue is fixed
2013-06-19: Vendor releases v5.64 which includes the fix
2013-07-01: Coordinated Disclosure