High Risk Security Hole Discovered In Qualcomm's GPU Driver
Rob Clark, the developer employed by Red Hat who has near single-handedly been developing Freedreno as a reverse-engineered, open-source GPU driver for Qualcomm's Adreno graphics hardware, made a big discovery. Rob was playing around with the Amazon Fire TV that boasts a Qualcomm SoC and runs on the Qualcomm proprietary graphics driver when discovering a "high risk" security issue.
Now that CVE-2014-0972 is public that was reported by Rob Clark, he can talk about this issue with the the Android kernel graphics code by Qualcomm. The issue comes down to unprivileged GPU command streams being able to change the IOMMU page table and thus is able to access arbitrary physical memory. "When using the per-process page table feature, IOMMU context registers, which control the physical location of the IOMMU page table in memory, are mapped into the GPU’s memory space and are not properly protected from write-access. Specifically, the register used by the GPU to switch an IOMMU page table during a context switch is not protected. An unprivileged local attacker can use this flaw to switch to a fake page table via a specially crafted GPU command stream and access arbitrary physical memory locations."
All active branches of the Qualcomm "KGSL" Android kernel driver are affected by this security issue. A patch to the KGSL code is available to address the issue. Qualcomm's graphics driver is open-source on the kernel side while their user-space portion is a binary blob. Freedreno, meanwhile, has a fully open-source kernel DRM driver and Gallium3D user-space driver.
Rob blogged about the KGSL security problem this morning on his blog. He was going to release a Fire TV jail-break using this GPU hole, but given that there's already other jailbreaks, this is no longer necessary. Rob ended up being able to install Fedora on his Amazon Fire TV.
Latest Linux Hardware Reviews
Latest Linux Articles
Latest Linux News
Latest Forum Discussions