lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 7 Jul 2020 14:45:10 -0700
From:   Kees Cook <>
To:     Mimi Zohar <>
Cc:     James Morris <>,
        Luis Chamberlain <>,
        Scott Branden <>,
        Greg Kroah-Hartman <>,
        "Rafael J. Wysocki" <>,
        Alexander Viro <>,
        Jessica Yu <>,
        Dmitry Kasatkin <>,
        "Serge E. Hallyn" <>,
        Casey Schaufler <>,
        "Eric W. Biederman" <>,
        Peter Zijlstra <>,
        Matthew Garrett <>,
        David Howells <>,
        Mauro Carvalho Chehab <>,
        Randy Dunlap <>,
        "Joel Fernandes (Google)" <>,
        KP Singh <>, Dave Olsthoorn <>,
        Hans de Goede <>,
        Peter Jones <>,
        Andrew Morton <>,
        Stephen Boyd <>,
        Paul Moore <>,,,,
Subject: Re: [PATCH 0/4] Fix misused kernel_read_file() enums

On Tue, Jul 07, 2020 at 11:36:04AM -0400, Mimi Zohar wrote:
> Hi Kees,
> On Tue, 2020-07-07 at 01:19 -0700, Kees Cook wrote:
> > Hi,
> > 
> > In looking for closely at the additions that got made to the
> > kernel_read_file() enums, I noticed that FIRMWARE_PREALLOC_BUFFER
> > and FIRMWARE_EFI_EMBEDDED were added, but they are not appropriate
> > *kinds* of files for the LSM to reason about. They are a "how" and
> > "where", respectively. Remove these improper aliases and refactor the
> > code to adapt to the changes.
> Thank you for adding the missing calls and the firmware pre allocated
> buffer comment update.
> > 
> > Additionally adds in missing calls to security_kernel_post_read_file()
> > in the platform firmware fallback path (to match the sysfs firmware
> > fallback path) and in module loading. I considered entirely removing
> > security_kernel_post_read_file() hook since it is technically unused,
> > but IMA probably wants to be able to measure EFI-stored firmware images,
> > so I wired it up and matched it for modules, in case anyone wants to
> > move the module signature checks out of the module core and into an LSM
> > to avoid the current layering violations.
> IMa has always verified kernel module signatures.  Recently appended

Right, but not through the kernel_post_read_file() hook, nor via
out-of-band hooks in kernel/module.c. I was just meaning that future
work could be done here to regularize module_sig_check() into an actual
LSM (which could, in theory, be extended to kexec() to avoid code
duplication there, as kimage_validate_signature() has some overlap with
mod_verify_sig()). into a bit more normal of an LSM.

As far as IMA and regularizing things, though, what about fixing IMA to
not manually stack:

$ grep -B3 ima_ security/security.c
        ret = call_int_hook(bprm_check_security, 0, bprm);
        if (ret)
                return ret;
        return ima_bprm_check(bprm);
        ret = call_int_hook(file_mprotect, 0, vma, reqprot, prot);
        if (ret)
                return ret;
        return ima_file_mprotect(vma, prot);

Can IMA implement a hook-last method to join the regular stacking routines?

> kernel module signature support was added to IMA.  The same appended
> signature format is also being used to sign and verify the kexec
> kernel image.
> With IMA's new kernel module appended signature support and patch 4/4
> in this series, IMA won't be limit to the finit_module syscall, but
> could support the init_module syscall as well.


> > This touches several trees, and I suspect it would be best to go through
> > James's LSM tree.
> Sure.

Is this an "Acked-by"? :)

Kees Cook

Powered by blists - more mailing lists