• Roberto Sassu's avatar
    evm: Allow setxattr() and setattr() for unmodified metadata · 1886ab01
    Roberto Sassu authored
    With the patch to allow xattr/attr operations if a portable signature
    verification fails, cp and tar can copy all xattrs/attrs so that at the
    end of the process verification succeeds.
    
    However, it might happen that the xattrs/attrs are already set to the
    correct value (taken at signing time) and signature verification succeeds
    before the copy has completed. For example, an archive might contains files
    owned by root and the archive is extracted by root.
    
    Then, since portable signatures are immutable, all subsequent operations
    fail (e.g. fchown()), even if the operation is legitimate (does not alter
    the current value).
    
    This patch avoids this problem by reporting successful operation to user
    space when that operation does not alter the current value of xattrs/attrs.
    
    With this patch, the one that introduces evm_hmac_disabled() and the one
    that allows a metadata operation on the INTEGRITY_FAIL_IMMUTABLE error, EVM
    portable signatures can be used without disabling metadata verification
    (by setting EVM_ALLOW_METADATA_WRITES). Due to keeping metadata
    verification enabled, altering immutable metadata protected with a portable
    signature that was successfully verified will be denied (existing
    behavior).
    
    Reported-by: kernel test robot <lkp@intel.com> [implicit declaration of function]
    Signed-off-by: default avatarRoberto Sassu <roberto.sassu@huawei.com>
    Reviewed-by: default avatarChristian Brauner <christian.brauner@ubuntu.com>
    Cc: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: default avatarMimi Zohar <zohar@linux.ibm.com>
    1886ab01
evm_main.c 21.5 KB