No description
Find a file
David Howells ad26df1875 certs: Fix blacklist flag type confusion
[ Upstream commit 4993e1f947 ]

KEY_FLAG_KEEP is not meant to be passed to keyring_alloc() or key_alloc(),
as these only take KEY_ALLOC_* flags.  KEY_FLAG_KEEP has the same value as
KEY_ALLOC_BYPASS_RESTRICTION, but fortunately only key_create_or_update()
uses it.  LSMs using the key_alloc hook don't check that flag.

KEY_FLAG_KEEP is then ignored but fortunately (again) the root user cannot
write to the blacklist keyring, so it is not possible to remove a key/hash
from it.

Fix this by adding a KEY_ALLOC_SET_KEEP flag that tells key_alloc() to set
KEY_FLAG_KEEP on the new key.  blacklist_init() can then, correctly, pass
this to keyring_alloc().

We can also use this in ima_mok_init() rather than setting the flag
manually.

Note that this doesn't fix an observable bug with the current
implementation but it is required to allow addition of new hashes to the
blacklist in the future without making it possible for them to be removed.

Fixes: 734114f878 ("KEYS: Add a system blacklist keyring")
Reported-by: Mickaël Salaün <mic@linux.microsoft.com>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Mickaël Salaün <mic@linux.microsoft.com>
cc: Mimi Zohar <zohar@linux.vnet.ibm.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-03-03 18:22:46 +01:00
arch MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0 2021-03-03 18:22:41 +01:00
block block: fix use-after-free in disk_part_iter_next 2021-01-17 13:59:01 +01:00
certs certs: Fix blacklist flag type confusion 2021-03-03 18:22:46 +01:00
crypto crypto: ecdh_helper - Ensure 'len >= secret.len' in decode_key() 2021-03-03 18:22:43 +01:00
Documentation USB: UAS: introduce a quirk to set no_write_same 2020-12-29 13:46:46 +01:00
drivers regulator: axp20x: Fix reference cout leak 2021-03-03 18:22:45 +01:00
firmware
fs quota: Fix memory leak when handling corrupted quota file 2021-03-03 18:22:44 +01:00
include certs: Fix blacklist flag type confusion 2021-03-03 18:22:46 +01:00
init printk: reduce LOG_BUF_SHIFT range for H8300 2020-11-05 11:06:55 +01:00
ipc
kernel ima: Free IMA measurement buffer after kexec syscall 2021-03-03 18:22:43 +01:00
lib lib/string: Add strscpy_pad() function 2021-02-23 14:00:30 +01:00
mm memblock: do not start bottom-up allocations with kernel_end 2021-02-23 14:00:32 +01:00
net mac80211: fix potential overflow when multiplying to u32 integers 2021-03-03 18:22:40 +01:00
samples samples: bpf: Fix lwt_len_hist reusing previous BPF map 2020-12-29 13:46:56 +01:00
scripts scripts/recordmcount.pl: support big endian for ARCH sh 2021-03-03 18:22:36 +01:00
security certs: Fix blacklist flag type confusion 2021-03-03 18:22:46 +01:00
sound ASoC: cs42l56: fix up error handling in probe 2021-03-03 18:22:42 +01:00
tools objtool: Support Clang non-section symbols in ORC generation 2021-02-10 09:12:08 +01:00
usr
virt kvm: check tlbs_dirty directly 2021-02-23 14:00:34 +01:00
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile Linux 4.14.222 2021-02-23 14:00:34 +01:00
README

Linux kernel
============

This file was moved to Documentation/admin-guide/README.rst

Please notice that there are several guides for kernel developers and users.
These guides can be rendered in a number of formats, like HTML and PDF.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.