• R
    evm: Return -EAGAIN to ignore verification failures · a5726544
    Roberto Sassu 提交于
    hulk inclusion
    category: feature
    feature: digest-lists
    
    ---------------------------
    
    By default, EVM maintains the same behavior as before hooks were moved
    outside the LSM infrastructure. When EVM returns -EPERM, callers stop their
    execution and return the error to user space.
    
    This patch introduces a new mode, called ignore, that changes the return
    value of the pre hooks from -EPERM to -EAGAIN. It also modifies the callers
    of pre and post hooks to continue the execution if -EAGAIN is returned. The
    error is then handled by the post hooks.
    
    The only error that is not ignored is when user space is trying to modify
    immutable metadata. Once that signature has been validated with the current
    values of metadata, there is no valid reason to change them.
    
    From user space perspective, operations on corrupted metadata are
    successfully performed but post hooks didn't update the HMAC. At the next
    IMA verification, when evm_verifyxattr() is called, corruption will be
    detected and access will be denied.
    Signed-off-by: NRoberto Sassu <roberto.sassu@huawei.com>
    Acked-by: NHanjun Guo <guohanjun@huawei.com>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    a5726544
xattr.c 25.8 KB