All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] x86: sanitize argument of clearcpuid command-line option
@ 2016-12-28 13:55 Lukasz Odzioba
  2016-12-29 10:21 ` Borislav Petkov
  2017-01-05 15:04 ` [tip:x86/urgent] x86/cpu: Fix bootup crashes by sanitizing the argument of the 'clearcpuid=' " tip-bot for Lukasz Odzioba
  0 siblings, 2 replies; 7+ messages in thread
From: Lukasz Odzioba @ 2016-12-28 13:55 UTC (permalink / raw)
  To: linux-kernel, tglx, mingo, hpa, x86, bp, luto, slaoub, bp,
	dave.hansen, andi.kleen
  Cc: Lukasz Odzioba

A negative number can be specified in the cmdline which will be used as
setup_clear_cpu_cap() argument. With that we can clear/set some bit in
memory predceeding boot_cpu_data/cpu_caps_cleared which may cause kernel
to misbehave. This patch adds lower bound check to setup_disablecpuid().

Fixes: ac72e7888a61 ("x86: add generic clearcpuid=... option")

Signed-off-by: Lukasz Odzioba <lukasz.odzioba@intel.com>
---
As an example let's change definition of one_hundred variable:
ffffffff81c4eeec d one_hundred
ffffffff81d69720 D boot_cpu_data (0x14 is x86_capability offset)

8*(0xffffffff81d69734-0xffffffff81c4eeec) => 9257536 -2 because we
want to clear the second bit. With clearcpuid=-9257534 we change the
definition of one_hundread to 96 which is used among other things
as sysfs' max value for swappiness, so we can check the effect like so:
# echo 96 >  /proc/sys/vm/swappiness
# echo 97 >  /proc/sys/vm/swappiness
-bash: echo: write error: Invalid argument
---
 arch/x86/kernel/cpu/common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index dc1697c..9bab7a8 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -1221,7 +1221,7 @@ static __init int setup_disablecpuid(char *arg)
 {
 	int bit;
 
-	if (get_option(&arg, &bit) && bit < NCAPINTS*32)
+	if (get_option(&arg, &bit) && bit >= 0 && bit < NCAPINTS * 32)
 		setup_clear_cpu_cap(bit);
 	else
 		return 0;
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-01-18 10:37 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-28 13:55 [PATCH 1/1] x86: sanitize argument of clearcpuid command-line option Lukasz Odzioba
2016-12-29 10:21 ` Borislav Petkov
2017-01-05  7:55   ` Ingo Molnar
2017-01-16 18:50     ` Odzioba, Lukasz
2017-01-17  7:17       ` Ingo Molnar
2017-01-18  9:52         ` Odzioba, Lukasz
2017-01-05 15:04 ` [tip:x86/urgent] x86/cpu: Fix bootup crashes by sanitizing the argument of the 'clearcpuid=' " tip-bot for Lukasz Odzioba

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.