Security Advisory - Google Chrome 19 metro_driver.dll mishandling
======
Summary : Google Chrome 19 is prone to unqualified DLL loading
Date : 28 June 2012
Affected versions : Google Chrome v19.0.1084.21 up-to v20.0.1132.23
ID : chromium#130276
CVE reference : CVE-2012-2764
Details
================
Google Chrome developers, while trying to be adaptive and current, added some
windows 8 helper functions to aid the development of Metro style behaviour,
but does not include the library file itself, thus resulting in an unqualified
dynamic-link library call to 'metro_driver.dll'.
A user with local disk access can carefuly construct a DLL that suits the
pattern that is being traversed by the client and implement it somewhere along
the search path and the client will load it seamlessly.
Impact
================
After the DLL has been implemented, an unsuspected user that will run Chrome
will cause it to load, resulting in arbitrary code execution under user's
privilege level.
This vector of attack is mainly used in a local privilege escalation scenarios,
user credential harvesting and can be used by malware to disguise itself,
amongst other uses.
Proof of Concept
================
#include <windows.h>
int hijack_poc ()
{
WinExec ( "calc.exe" , SW_NORMAL );
return 0 ;
}
BOOL WINAPI DllMain
( HINSTANCE hinstDLL ,
DWORD dwReason ,
LPVOID lpvReserved )
{
hijack_poc () ;
return 0 ;
}
Solution
================
Google Chrome 20.0.1132.43 resolves the issue.
Credits
================
The issue was responsibly reported by Moshe Zioni from Comsec Global Consulting.
Timeline
=================
26 June 2012
Google officialy announce Google Chrome 20 stable, fix included
1 June 2012
Code reverted - Revision 139975 takes place
30 May 2012
First response from a Google code maintainer
30 May 2012
Bug reported by Moshe Zioni from Comsec Global Consulting
References
=================
Google Chrome
http://www.google.com/chrome
Revision details
http://src.chromium.org/viewvc/chrome?view=rev&revision=139975
Comsec Global Consulting
http://www.comsecglobal.com/