linux-azure: Enable FSGSBASE instructions to support SGX
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux-azure (Ubuntu) |
Fix Released
|
Undecided
|
Marcelo Cerri | ||
Bionic |
Invalid
|
Undecided
|
Unassigned | ||
Eoan |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Unassigned | ||
Groovy |
Fix Released
|
Undecided
|
Marcelo Cerri | ||
linux-azure-4.15 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Undecided
|
Unassigned | ||
Eoan |
Invalid
|
Undecided
|
Unassigned | ||
Focal |
Invalid
|
Undecided
|
Unassigned | ||
Groovy |
Invalid
|
Undecided
|
Unassigned |
Bug Description
X86 has instructions (RDFSBASE, RDGSBASE, WRFSBASE, and WRGSBASE) to support read/write of the FS/GS bases. Linux doesn't allow user mode code to execute these instructions by default. These instructions can be enabled for user mode by setting the 16th control bit of the CR4 register. Since only protected mode can modify the control registers, application programs and operating-system procedures (running at privilege levels 1, 2, or 3) are prevented from reading or loading the control registers. The kernel patch sets this CR4 register and handles the context switching to account for the fact that user mode can now modify the FS/GS base.
A recent news article that talks about the performance benefits: https:/
Patch set: https:/
CVE References
Changed in linux-azure (Ubuntu Bionic): | |
status: | New → Invalid |
Changed in linux-azure-4.15 (Ubuntu Eoan): | |
status: | New → Invalid |
Changed in linux-azure-4.15 (Ubuntu Focal): | |
status: | New → Invalid |
Changed in linux-azure (Ubuntu Eoan): | |
status: | New → In Progress |
Changed in linux-azure (Ubuntu Focal): | |
status: | New → In Progress |
Changed in linux-azure-4.15 (Ubuntu): | |
status: | New → In Progress |
Changed in linux-azure-4.15 (Ubuntu Bionic): | |
status: | New → In Progress |
Changed in linux-azure (Ubuntu Eoan): | |
status: | In Progress → Fix Committed |
Changed in linux-azure (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
Changed in linux-azure-4.15 (Ubuntu Groovy): | |
status: | In Progress → Invalid |
Changed in linux-azure (Ubuntu Groovy): | |
status: | Fix Released → In Progress |
This bug was fixed in the package linux-azure - 5.4.0-1016.16
---------------
linux-azure (5.4.0-1016.16) focal; urgency=medium
[ Ubuntu: 5.4.0-37.41 ]
* CVE-2020-0543 /spectre_ v2: Exclude Zhaoxin CPUs from SPECTRE_V2
- SAUCE: x86/speculation
- SAUCE: x86/cpu: Add a steppings field to struct x86_cpu_id
- SAUCE: x86/cpu: Add 'table' argument to cpu_matches()
- SAUCE: x86/speculation: Add Special Register Buffer Data Sampling (SRBDS)
mitigation
- SAUCE: x86/speculation: Add SRBDS vulnerability and mitigation documentation
- SAUCE: x86/speculation: Add Ivy Bridge to affected list
linux-azure (5.4.0-1013.13) focal; urgency=medium
* focal/linux-azure: 5.4.0-1013.13 -proposed tracker (LP: #1878793)
* Add support for Ambiq micro AM1805 RTC chip (LP: #1876667)
- SAUCE: rtc: add am-1805 RTC driver
* linux-azure: Enable FSGSBASE instructions to support SGX (LP: #1877425) x86/fsgsbase: Test GS selector on ptracer-induced GS base /swapgs: Check FSGSBASE in enabling SWAPGS mitigation x86/fsgsbase: Test ptracer-induced GS base write with x86/64: Add documentation for GS/FS addressing mode
- SAUCE: x86/ptrace: Prevent ptrace from clearing the FS/GS selector
- SAUCE: selftests/
write
- SAUCE: x86/cpu: Add 'unsafe_fsgsbase' to enable CR4.FSGSBASE
- SAUCE: x86/entry/64: Clean up paranoid exit
- SAUCE: x86/entry/64: Switch CR3 before SWAPGS in paranoid entry
- SAUCE: x86/entry/64: Introduce the FIND_PERCPU_BASE macro
- SAUCE: x86/entry/64: Handle FSGSBASE enabled paranoid entry/exit
- SAUCE: x86/entry/64: Document GSBASE handling in the paranoid path
- SAUCE: x86/fsgsbase/64: Add intrinsics for FSGSBASE instructions
- SAUCE: x86/fsgsbase/64: Enable FSGSBASE instructions in helper functions
- SAUCE: x86/fsgsbase/64: Use FSGSBASE in switch_to() if available
- SAUCE: x86/fsgsbase/64: Use FSGSBASE instructions on thread copy and ptrace
- SAUCE: x86/speculation
- SAUCE: selftests/
FSGSBASE
- SAUCE: x86/fsgsbase/64: Enable FSGSBASE on 64bit by default and add a
chicken bit
- SAUCE: x86/elf: Enumerate kernel FSGSBASE capability in AT_HWCAP2
- SAUCE: Documentation/
* rtkit-daemon[*]: Failed to make ourselves RT: Operation not permitted after RT_GROUP_ SCHED
upgrade to 20.04 (LP: #1875665)
- [Config] Turn off CONFIG_
[ Ubuntu: 5.4.0-34.38 ]
* focal/linux: 5.4.0-34.38 -proposed tracker (LP: #1880118) scripts/ file-downloader does not handle positive failures correctly ns_descs error handling
* debian/
(LP: #1878897)
- [Packaging] file-downloader not handling positive failures correctly
* Focal update: v5.4.41 upstream stable release (LP: #1878649)
- USB: serial: qcserial: Add DW5816e support
- nvme: refactor nvme_identify_
- nvme: fix possible hang when ns scanning fails during error recovery
- tracing/kprobes: Fix a double initialization typo
- net: macb: Fix runtime PM refcounting
- drm/amdgpu: move kfd suspend after ip_suspend_phase1
- drm/amdgpu: drop redundant cg/pg ungate on runpm enter
- vt: fix unicode console freeing with a common interface
- tty: xilinx_uartps: Fix missing...