Overview
Microsoft Windows does not adequately validate registry data read using the function RtlQueryRegistryValues(). By modifying an EUDC registry key value, a local user could execute arbitrary code with SYSTEM privileges.
Description
Microsoft Windows supports end-user-defined characters (EUDC) to allow users to define custom unicode characters. The Windows kernel (win32k.sys) graphics device interface (GDI) reads the EUDC registry key for font information. More specifically, GreEnableEudc() uses RtlQueryRegistryValues() to read HKCU\EUDC\{codepage}\SystemDefaultEUDCFont. In this case RtlQueryRegistryValues() expects to read a REG_SZ (string) value into a buffer whose length and contents are determined by the type and value of SystemDefaultEUDCFont. By default, an unprivileged user has access to modify the EUDC registry key. Furthermore, RtlQueryRegistryValues() does not validate the data read from SystemDefaultEUDCFont. |
Impact
An unprivileged local user can execute arbitrary code with SYSTEM privileges. |
Solution
We are currently unaware of a complete solution to this problem. |
Restrict access to EUDC registry key |
Vendor Information
CVSS Metrics
Group | Score | Vector |
---|---|---|
Base | ||
Temporal | ||
Environmental |
References
- http://secunia.com/advisories/42356
- http://www.exploit-db.com/exploits/15609/
- http://moonslab.com/1195
- http://nakedsecurity.sophos.com/2010/11/25/new-windows-zero-day-flaw-bypasses-uac/
- http://isc.sans.edu/diary.html?storyid=9988
- http://www.prevx.com/blog/160/New-Windows-day-exploit-speaks-chinese.html
- http://msdn.microsoft.com/en-us/library/dd317836%28VS.85%29.aspx
Acknowledgements
This vulnerability was publicly disclosed by noobpwnftw.
This document was written by Art Manion.
Other Information
CVE IDs: | None |
Severity Metric: | 15.94 |
Date Public: | 2010-11-24 |
Date First Published: | 2010-11-26 |
Date Last Updated: | 2010-11-26 22:40 UTC |
Document Revision: | 10 |