[Feature] Purley: Memory Protection Keys
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
intel |
Fix Released
|
Undecided
|
Unassigned | ||
linux (Ubuntu) |
Fix Released
|
Undecided
|
Tim Gardner | ||
Yakkety |
Fix Released
|
Undecided
|
Tim Gardner | ||
Zesty |
Fix Released
|
Undecided
|
Tim Gardner |
Bug Description
Memory Protection Keys for Userspace (PKU aka PKEYs) is a Skylake-SP server feature that provides a mechanism for enforcing page-based protections, but without requiring modification of the page tables when an application changes protection domains. It works by dedicating 4 previously ignored bits in each page table entry to a "protection key", giving 16 possible keys.
There is also a new user-accessible register (PKRU) with two separate bits (Access Disable and Write Disable) for each key.Being a CPU register, PKRU is inherently thread-
There are two new instructions (RDPKRU/WRPKRU) for reading and writing to the new register. The feature is only available in 64-bit mode, even though there is theoretically space in the PAE PTEs. These permissions are enforced on data access only and have no effect on instruction fetches.
HW: Purley
Upstream status:
v4.6 kernel implement basic and execute-only support
v4.9 kernel will have new interface
CVE References
Changed in linux (Ubuntu): | |
assignee: | nobody → Tim Gardner (timg-tpi) |
status: | Incomplete → In Progress |
Changed in linux (Ubuntu Zesty): | |
status: | In Progress → Fix Released |
Changed in linux (Ubuntu Yakkety): | |
assignee: | nobody → Tim Gardner (timg-tpi) |
status: | New → In Progress |
Changed in linux (Ubuntu Yakkety): | |
status: | In Progress → Fix Committed |
Changed in intel: | |
status: | New → Fix Released |
The v4.8 based kernel has been uploaded to the Yakkety 16.10 archive. I'm setting this to Fix Released.