Secure Boot Breaks Kexec, Hibernate Support On Linux

Posted by Michael Larabel on January 28, 2013

A set of "controversial" patches were published by Matthew Garrett this morning for the Linux kernel. One of the patch series will disable the kernel's support for kexec and hibernate support when running in a UEFI Secure Boot environment.

Hibernation power management support needs to be disabled since right now the Linux kernel has no way to verify the resume image when returning from hibernate. With this limitation of the Linux kernel not being able to verify the kernel image upon resume, it compromises the Secure Boot trust model. Ultimately, the Linux kernel will need to be changed so that it can work with signed hibernate images.

The kexec support needs to be disabled when running in Secure Boot since the kernel execution mechanism could be used as an attack vector by a malicious user. Using kexec could bypass the Secure Boot trust model to load a modified kernel. Ultimately, the Linux kernel will need to be improved to support signed kexec payloads.

The kexec and hibernate disabling patches can be found on the Linux kernel mailing list in a patch series entitled by Matthew as Secure Boot: More controversial changes. "These patches break functionality that people rely on without providing any functional equivalent, so I'm not suggesting that they be merged as-is. kexec allows trivial circumvention of the trust model (it's trivially equivalent to permitting module loading, for instance) and hibernation allows similar attacks (disable swap, write a pre-formed resume image to swap, reboot). The hibernation patch also shows up a different issue - some userspace drops all capabilities, resulting in things that userspace expects to work no longer working. This seems like an unsurprising result, but breaking userspace is bad and so it'd be nice to figure out if there's another way to handle this."

Matthew, now working at Nebula rather than Red Hat, also posted a set of 15 patches for Secure Boot policy support. "Secure boot makes it possible to ensure that the on-disk representation of the kernel hasn't been modified. This can be sidestepped if the in-memory representation can be trivially altered. We currently have a large number of interfaces that permit root to perform effectively arbitrary modifications to the kernel, so this patchset introduces a new capability ("CAP_COMPROMISE_KERNEL") that controls whether or not these features are available. The aim is for this to be useful in any other situations where kernel integrity can be assured by some other mechanism rather than special casing UEFI."

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. Digia Announces "Boot To Qt" Project
  2. X.Org Libraries Hit By Round Of Security Issues
  3. Wayland's Weston Gets Output Scaling Support
  4. Raspberry Pi Gets New Wayland Weston Renderer
  5. Debian GNU/Hurd 2013 Release Brings New Packages
  6. Intel Ultrabook Performance Is Faster With Mesa 9.2
  7. Hot Relocation HDD To SSD Support For Btrfs
  8. Phoronix Test Suite 4.6.0 "Utsira" Released
  9. New Intel X.Org Driver Supports All Of Haswell
  10. SQLite Now Faster With Memory Mapped I/O
  11. Microsoft Releases Skype For Linux 4.2, Has Bug-Fixes
Latest Forum Talk
  1. X.Org Libraries Hit By Round Of Security Issues
  2. Fedora 18 Comes To ARMv6, Raspberry Pi
  3. Digia Announces "Boot To Qt" Project
  4. Updated and Optimized Ubuntu Free Graphics Drivers
  5. Microsoft Releases Skype For Linux 4.2, Has...
  6. Radeon 7770 Can't reclock crash kernel
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite