evm: fix writing <securityfs>/evm overflow
Subsystems (4)
Mimi Zohar
maintainerPATCH 1/1 evm: fix writing <securityfs>/evm overflow
EVM_SETUP_COMPLETE is defined as 0x80000000, which is larger than INT_MAX. The "-fno-strict-overflow" compiler option properly prevents signaling EVM that the EVM policy setup is complete. Define and read an unsigned int.
Fixes f00d79750712 ("EVM: Allow userspace to signal an RSA key has been
loaded")
Signed-off-by Mimi Zohar <[email protected]>
--- security/integrity/evm/evm_secfs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
security/integrity/evm/evm_secfs.c +3 -2
@@ -66,12 +66,13 @@ static ssize_t evm_read_key(struct file *filp, char __user *buf,static ssize_t evm_write_key (struct file *file,const char __user *buf,size_t count,loff_t *ppos) { -int i, ret; +unsigned int i; +int ret;if (!capable (CAP_SYS_ADMIN ) || (evm_initialized &EVM_SETUP_COMPLETE ))return -EPERM ; - ret =kstrtoint_from_user (buf, count,0 , &i); + ret =kstrtouint_from_user (buf, count,0 , &i);if (ret)return ret;
Signature · 1 line
2.27.0
Quoted 8 lines · Mimi Zohar
EVM_SETUP_COMPLETEis defined as0x80000000, which is larger thanINT_MAX. The "-fno-strict-overflow" compiler option properly prevents signaling EVM that the EVM policy setup is complete. Define and read an unsigned int.Fixes f00d79750712 ("EVM: Allow userspace to signal an RSA key has beenloaded")
Signed-off-by Mimi Zohar <[email protected]>
Tested-by Stefan Berger <[email protected]>
Quoted 24 lines
--- security/integrity/evm/evm_secfs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)security/integrity/evm/evm_secfs.c +3
-2@@ -66,12 +66,13 @@ static ssize_t evm_read_key(struct file *filp, char __user *buf,static ssize_t evm_write_key (struct file *file,const char __user *buf,size_t count,loff_t *ppos) { -int i, ret; +unsigned int i; +int ret;if (!capable (CAP_SYS_ADMIN ) || (evm_initialized &EVM_SETUP_COMPLETE ))return -EPERM ; - ret =kstrtoint_from_user (buf, count,0 , &i); + ret =kstrtouint_from_user (buf, count,0 , &i);if (ret)return ret;