New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 5 users
Status: Fixed
Owner:
Email to this user bounced
Closed: Sep 2014



Sign in to add a comment
OS X IOKit kernel code execution due to lack of bounds checking in IGAccelVideoContextMain::process_token_ColorSpaceConversion
Project Member Reported by ianbeer@google.com, Jun 13 2014 Back to list
IGAccelVideoContextMain is the userclient used for GPU accelerated video encoding on the Intel HD integrated GPUs. It's userclient 0x100 of the IntelAccelerator IOService. IOConnectMapMemory type=0 of this userclient is a shared token buffer. Token 0x8a is ColorSpaceConversion, implemented in IGAccelVideoContextMain::process_token_ColorSpaceConversion
The dword at offset 0x14 of this token is used to compute the offset for a write without checking the bounds, allowing a controlled kernel memory write.

Triggering this is a bit annoying, sorry, haven't had time to make a self-contained repro for this bug yet:

Compile this dylib:
  $ clang -Wall -dynamiclib -o ig_video_main_ColorSpaceConversion.dylib ig_video_main_ColorSpaceConversion.c -framework IOKit -arch i386 -arch x86_64 
Load it into Quicktime:
  $ DYLD_INSERT_LIBRARIES=./ig_video_main_ColorSpaceConversion.dylib /Applications/QuickTime\ Player.app/Contents/MacOS/QuickTime\ Player
Start a screen recording:
  File -> New Screen Recording -> Click the red circle -> start the recording
This interpose library will look for the ColorSpaceConversion token in the shared memory and trigger the bug.

Impact:
This userclient can be instantiated from the Chrome GPU process sandbox and the Safari renderer sandbox
 
ig_video_main_ColorSpaceConversion.c
8.1 KB Download
Project Member Comment 1 by ianbeer@google.com, Jun 13 2014
Labels: Reported-2014-June-13
Project Member Comment 2 by ianbeer@google.com, Jun 13 2014
Labels: Id-607079512
Project Member Comment 3 by ianbeer@google.com, Aug 22 2014
Labels: Deadline-90
Project Member Comment 4 by ianbeer@google.com, Sep 11 2014
Labels: -Restrict-View-Commit Deadline-Exceeded PublicOn-2014-September-11
Comment 5 by cevans@google.com, Sep 23 2014
Labels: -Reported-2014-June-13 -PublicOn-2014-September-11 Reported-2014-Jun-13 PublicOn-2014-Sep-11 Fixed-2014-Sep-17 CVE-2014-4398
Status: Fixed
http://support.apple.com/kb/HT6443
Sign in to add a comment