tty: vt_ioctl: fix potential Spectre v1
PATCH 1/1 tty: vt_ioctl: fix potential Spectre v1
vsa.console is indirectly controlled by user-space, hence leading to a potential exploitation of the Spectre variant 1 vulnerability.
This issue was detected with the help of Smatch:
drivers/tty/vt/vt_ioctl.c:711 vt_ioctl() warn: potential spectre issue 'vc_cons' [r]
Fix this by sanitizing vsa.console before using it to index vc_cons
Notice that given that speculation windows are large, the policy is to kill the speculation on the first load and not worry if it can be completed with a dependent load/store [1].
[1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2
--- drivers/tty/vt/vt_ioctl.c | 4 ++++ 1 file changed, 4 insertions(+)
drivers/tty/vt/vt_ioctl.c +4 -0
@@ -32,6 +32,8 @@#include <asm/io.h> #include <linux/uaccess.h> +#include <linux/nospec.h> +#include <linux/kbd_kern.h> #include <linux/vt_kern.h> #include <linux/kbd_diacr.h>
@@ -700,6 +702,8 @@ int vt_ioctl(struct tty_struct *tty,if (vsa.console ==0 || vsa.console >MAX_NR_CONSOLES ) ret = -ENXIO ;else { + vsa.console =array_index_nospec (vsa.console, +MAX_NR_CONSOLES +1 ); vsa.console--;console_lock (); ret =vc_allocate (vsa.console);
Signature · 1 line
2.7.4
Quoted 10 lines · On Thu, 16 Aug 2018 15:30:38 -0500 "Gustavo A. R. Silva"…
vsa.console is indirectly controlled by user-space, hence leading to a potential exploitation of the Spectre variant 1 vulnerability.
This issue was detected with the help of Smatch:
drivers/tty/vt/vt_ioctl.c:711vt_ioctl()warn: potential spectre issue 'vc_cons' [r]Fix this by sanitizing vsa.console before using it to index
vc_cons
Quoted 8 lines
Notice that given that speculation windows are large, the policy is to kill the speculation on the first load and not worry if it can be completed with a dependent load/store [1].
[1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2
Signed-off-by Gustavo A. R. Silva <[email protected]>
Alan