Re: [PATCH v3 2/2] modules:capabilities: add a per-task modules autoload restriction

From: Kees Cook
Date: Wed Apr 19 2017 - 19:43:28 EST


On Wed, Apr 19, 2017 at 4:15 PM, Andy Lutomirski <luto@xxxxxxxxxx> wrote:
> On Wed, Apr 19, 2017 at 3:20 PM, Djalal Harouni <tixxdz@xxxxxxxxx> wrote:
>> +/* Sets task's modules_autoload */
>> +static inline int task_set_modules_autoload(struct task_struct *task,
>> + unsigned long value)
>> +{
>> + if (value > MODULES_AUTOLOAD_DISABLED)
>> + return -EINVAL;
>> + else if (task->modules_autoload > value)
>> + return -EPERM;
>> + else if (task->modules_autoload < value)
>> + task->modules_autoload = value;
>> +
>> + return 0;
>> +}
>
> This needs to be more locked down. Otherwise someone could set this
> and then run a setuid program. Admittedly, it would be quite odd if
> this particular thing causes a problem, but the issue exists
> nonetheless.

Eeeh, I don't agree this needs to be changed. APIs provided by modules
are different than the existing privilege-manipulation syscalls this
concern stems from. Applications are already forced to deal with
things being missing like this in the face of it simply not being
built into the kernel.

Having to hide this behind nnp seems like it'd reduce its utility...

-Kees

--
Kees Cook
Pixel Security