Mac OS X 10.10.2 IOHIDFamily.kext IOHIDSecurePromptClient Heap Overflow

2015.03.20
Credit: Luca Todesco
Risk: High
Local: Yes
Remote: No
CVE: N/A
CWE: CWE-119

Hello, I have recently found an exploitable heap overflow in a core OS X driver. Particularly, the injectString function is vulnerable to an heap overflow and can be triggered without privileges of any kind. The vulnerable function can be seen at http://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-503.200.2/IOHIDSystem/IOHIDSecurePromptClient.cpp I wrote a weaponized poc at http://github.com/kpwn/vpwn. The KASLR leak is not reliable. It works only on Macs with AMD (no FirePro) GPUs. (Tested on a last gen 5K Retina iMac). It was the only one I'd sacrifice for a public PoC because of that constraint. It does not completely clean up it's own mess, so running ioreg after running the PoC will likely crash your box. The particular IOKit service has been involved in a CVE in October. It had functions that could literally not be used without crashing the kernel. There still are other unsafe functions in that very same file. Apple has disabled the service in particular on the latest 10.10.3 beta possible due to those other bugs. I do not believe they are aware of this issue in particular. But this is pure speculation, and it doesn't matter in the end, since the vulnerability cannot be triggered anymore. Let me know what you think, Luca Todesco. -qwertyoruiop

References:

http://opensource.apple.com/source/IOHIDFamily/IOHIDFamily-503.200.2/IOHIDSystem/IOHIDSecurePromptClient.cpp
http://github.com/kpwn/vpwn


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top