atm: zatm: Fix potential Spectre v1
Subsystems (3)
PATCH 1/1 atm: zatm: Fix potential Spectre v1
pool can be 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/atm/zatm.c:1491 zatm_ioctl() warn: potential spectre issue 'zatm_dev->pool_info' (local cap)
Fix this by sanitizing pool before using it to index zatm_dev->pool_info
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/atm/zatm.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/atm/zatm.c +2 -0
@@ -1483,6 +1483,8 @@ static int zatm_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg)return -EFAULT ;if (pool <0 || pool >ZATM_LAST_POOL )return -EINVAL ; + pool =array_index_nospec (pool, +ZATM_LAST_POOL +1 );if (copy_from_user (&info, &((struct zatm_pool_req __user *) arg)->info,sizeof (info)))return -EFAULT ;
Signature · 1 line
2.7.4
From: "Gustavo A. R. Silva" <[email protected]>
Date: Fri, 29 Jun 2018 13:28:07 -0500
Quoted 11 lines
pool can be 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/atm/zatm.c:1491zatm_ioctl()warn: potential spectre issue 'zatm_dev->pool_info' (local cap)Fix this by sanitizing pool before using it to index
zatm_dev->pool_info
Quoted 7 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]>
Applied.