Skip to content
cyberexploits
doswindowstext

Google Chrome < 14.0.835.163 - '.pdf' File Handling Memory Corruption

Google Chrome < 14.0.835.163 - '.pdf' File Handling Memory Corruption

Published on 2011-10-04

Source code

Pinned to commit 7eac4c3a2ce5
textplatforms/windows/dos/17929.txt7eac4c3a
raw
----------------Security Adisory----------------



Title: Google Chrome < 14.0.835.163 PDF File Handling Memory Corruption Vulnerability (CVE-2011-2841)

Sec-Security: Hich

CVE-Number: CVE-2011-2841

Date of discovery: 04/06/2011(MM/DD/YYYY)

Fix date: 06/28/2011(MM/DD/YYYY)

Fixed Version: Google Chrome >= 14.0.835.163 

Discovered by: Mario Gomes





----------------Summary----------------



Google Chrome is a web browser developed by Google that uses the WebKit layout engine. 

It was first released as a beta version for Microsoft Windows on September 2, 2008, and the public stable release was on December 11, 2008. 

The name is derived from the graphical user interface frame, or "chrome", of web browsers. 

As of August 2011, Chrome is the third most widely used browser with 23.16% worldwide usage share of web browsers, according to StatCounter.(From Wikipedia)







----------------Description----------------



Google Chrome suffers from a memory corruption vulnerability that occurs in the manipulation of PDF files. 

The failure occurs when the browser opens an HTML file that contains multiple tag <IFRAME> pointing to a PDF file. 

So it is a memory corruption flaw allows code to run within the sandbox.





----------------Stacktrace----------------



This stracktrace shows a clear memory corruption, because I do not have the symbols of Google's PDF viewer can not give more details.



(648.41c): Access violation - code c0000005 (first chance)

First chance exceptions are reported before any exception handling.

This exception may be expected and handled.

eax=049c4000 ebx=0000efee ecx=049bc7a0 edx=841d63b9 esi=00000000 edi=049bf000

eip=6f3f9332 esp=002feaa0 ebp=002feac4 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00210206

*** ERROR: Symbol file could not be found. Defaulted to export symbols for D:\Users\Cassio\AppData\Local\Google\Chrome\Application\12.0.742.91\pdf.dll - 

pdf!PPP_GetInterface+0x17be62:

6f3f9332 8b08 mov ecx,dword ptr [eax] ds:0023:049c4000=????????

Stacktrace:

pdf!PPP_GetInterface+0x17be62

pdf!PPP_GetInterface+0x17430f

pdf!PPP_GetInterface+0x172fe1

pdf!PPP_GetInterface+0x28d40

pdf!PPP_GetInterface+0x11db6

pdf!GetPDFDocInfo+0x1944f

pdf!GetPDFDocInfo+0x18cce

pdf!GetPDFDocInfo+0x1868c

pdf!GetPDFDocInfo+0x85ae

pdf!GetPDFDocInfo+0x4432

pdf+0x64d0

pdf!GetPDFDocInfo+0x6f42

pdf!GetPDFDocInfo+0x6d0e

pdf!GetPDFDocInfo+0x49e0

pdf!GetPDFDocInfo+0x37be

pdf!GetPDFDocInfo+0x3792

pdf!GetPDFDocInfo+0x3db1

chrome_63700000!WebCore::DocumentLoader::finishedLoading+0x31

chrome_63700000!WebCore::FrameLoader::finishedLoading+0x26

chrome_63700000!WebCore::MainResourceLoader::didFinishLoading+0x5c

chrome_63700000!WebCore::ResourceLoader::didFinishLoading+0xe

chrome_63700000!WebCore::ResourceHandleInternal::didFinishLoading+0x35

chrome_63700000!webkit_glue::WebURLLoaderImpl::Context::OnCompletedRequest+0x10c

chrome_63700000!ResourceDispatcher::OnRequestComplete+0x43

chrome_63700000!IPC::MessageWithTuple<Tuple4<int,net::URLRequestStatus,std::basic_string<char,std::char_traits<char>,std::alloc+0x4d

chrome_63700000!ResourceDispatcher::DispatchMessageW+0x4f

chrome_63700000!ResourceDispatcher::OnMessageReceived+0xbb

chrome_63700000!ChildThread::OnMessageReceived+0x1b

chrome_63700000!RunnableMethod<notifier::MediatorThreadImpl::Core,void (__thiscall notifier::MediatorThreadImpl::Core::*)(std::+0x17

chrome_63700000!MessageLoop::RunTask+0x7d

chrome_63700000!MessageLoop::DeferOrRunPendingTask+0x28

chrome_63700000!MessageLoop::DoWork+0x71

chrome_63700000!base::MessagePumpDefault::Run+0xc2

chrome_63700000!MessageLoop::RunInternal+0x31

chrome_63700000!MessageLoop::RunHandler+0x17

chrome_63700000!MessageLoop::Run+0x15

chrome_63700000!RendererMain+0x309

chrome_63700000!ChromeMain+0x653

chrome!MainDllLoader::Launch+0xf0

chrome!wWinMain+0xef

chrome!__tmainCRTStartup+0x112

kernel32!BaseThreadInitThunk+0xe

ntdll!__RtlUserThreadStart+0x70

ntdll!_RtlUserThreadStart+0x1b





----------------Tested On----------------



Microsoft Windows XP Professional Service Pack 3 (Brazilian Portuguese)



----------------Proof-of-concept----------------



Poc in HTML File: http://pastebin.com/DBUGWbQM

The PDF file needed can be found here: http://www.irs.gov/pub/irs-pdf/fw4.pdf



Download both files here:

https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/17929.zip





----------------Steps to Reproduce----------------



1. Create the file poc.html with this code http://pastebin.com/DBUGWbQM

2. Download the PDF file here and save in same folder

3. Open the poc.html with fw4.pdf in same folder.





----------------Vulnerability Timeline(MM/DD/YYYY)----------------



[04/06/2011] Vulnerability is discovered and sent to the vendor.

[04/06/2011] The Google security team confirm the vulnerability and updates the status.

[06/13/2011] More information about the vulnerability is sent.

[07/28/2011] Vulnerability is fixed and the vendor announces the launch of the patch is version 14.

[09/16/2011] The vendor released version 14 with the flaw fixed.

[10/03/2011] Coordinated public security advisory released.



----------------References----------------



Google Release Notes Post(http://googlechromereleases.blogspot.com/2011/09/stable-channel-update_16.html)

CVE Number(http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-2841)

Chromium Bug Tracker Bug Id(http://code.google.com/p/chromium/issues/detail?id=78639)

Vulnerability Blog Post(http://net-fuzzer.blogspot.com/2011/10/google-chrome-140835163-pdf-file.html)







----------------Vulnerability Credits----------------

Mario Gomes Security Researcher and Pen-tester, Goiania - GO, Brazil

Blog http://net-fuzzer.blogspot.com

Contact netfuzzer@hotmail.com



----------------End of Advisory----------------
View on GitHub