[07/12] ACPI: Limit access to custom_method

Message ID 1363642353-30749-7-git-send-email-matthew.garrett@nebula.com
State Not Applicable
Headers show

Commit Message

Matthew Garrett March 18, 2013, 9:32 p.m.
It must be impossible for even root to get code executed in kernel context
under a secure boot environment. custom_method effectively allows arbitrary
access to system memory, so it needs to have a capability check here.

Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
 drivers/acpi/custom_method.c | 3 +++
 1 file changed, 3 insertions(+)


diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
index 12b62f2..edf0710 100644
--- a/drivers/acpi/custom_method.c
+++ b/drivers/acpi/custom_method.c
@@ -29,6 +29,9 @@  static ssize_t cm_write(struct file *file, const char __user * user_buf,
 	struct acpi_table_header table;
 	acpi_status status;
+	if (!capable(CAP_COMPROMISE_KERNEL))
+		return -EPERM;
 	if (!(*ppos)) {
 		/* parse the table header to get the table length */
 		if (count <= sizeof(struct acpi_table_header))