Re: [PATCH 04/10] ACPI: Limit access to custom_method

From: Lenny Szubowicz
Date: Thu Aug 29 2013 - 13:58:50 EST



----- Original Message -----
> From: "Matthew Garrett" <matthew.garrett@xxxxxxxxxx>
> To: linux-kernel@xxxxxxxxxxxxxxx
> Cc: linux-efi@xxxxxxxxxxxxxxx, jwboyer@xxxxxxxxxx, keescook@xxxxxxxxxxxx, "Matthew Garrett"
> <matthew.garrett@xxxxxxxxxx>
> Sent: Monday, August 19, 2013 12:10:13 PM
> Subject: [PATCH 04/10] ACPI: Limit access to custom_method
>
> custom_method effectively allows arbitrary access to system memory, making
> it possible for an attacker to circumvent restrictions on module loading.
> Disable it if any such restrictions have been enabled.
>
> Signed-off-by: Matthew Garrett <matthew.garrett@xxxxxxxxxx>
> ---
> drivers/acpi/custom_method.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
> index 12b62f2..55a013f 100644
> --- a/drivers/acpi/custom_method.c
> +++ b/drivers/acpi/custom_method.c
> @@ -7,6 +7,7 @@
> #include <linux/kernel.h>
> #include <linux/uaccess.h>
> #include <linux/debugfs.h>
> +#include <linux/module.h>
> #include <acpi/acpi_drivers.h>
>
> #include "internal.h"
> @@ -29,6 +30,9 @@ static ssize_t cm_write(struct file *file, const char
> __user * user_buf,
> struct acpi_table_header table;
> acpi_status status;
>
> + if (secure_modules())
> + return -EPERM;
> +
> if (!(*ppos)) {
> /* parse the table header to get the table length */
> if (count <= sizeof(struct acpi_table_header))
> --
> 1.8.3.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

Nit: Don't add a second include of linux/module.h.

-Lenny.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/