Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
Pull integrity updates from James Morris:
"Mimi Zohar says:
'Linux 5.0 introduced the platform keyring to allow verifying the IMA
kexec kernel image signature using the pre-boot keys. This pull
request similarly makes keys on the platform keyring accessible for
verifying the PE kernel image signature.
Also included in this pull request is a new IMA hook that tags tmp
files, in policy, indicating the file hash needs to be calculated.
The remaining patches are cleanup'"
* 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
evm: Use defined constant for UUID representation
ima: define ima_post_create_tmpfile() hook and add missing call
evm: remove set but not used variable 'xattr'
encrypted-keys: fix Opt_err/Opt_error = -1
kexec, KEYS: Make use of platform keyring for signature verify
integrity, KEYS: add a reference to platform keyring
This commit is contained in:
@@ -396,6 +396,33 @@ int ima_file_check(struct file *file, int mask)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ima_file_check);
|
||||
|
||||
/**
|
||||
* ima_post_create_tmpfile - mark newly created tmpfile as new
|
||||
* @file : newly created tmpfile
|
||||
*
|
||||
* No measuring, appraising or auditing of newly created tmpfiles is needed.
|
||||
* Skip calling process_measurement(), but indicate which newly, created
|
||||
* tmpfiles are in policy.
|
||||
*/
|
||||
void ima_post_create_tmpfile(struct inode *inode)
|
||||
{
|
||||
struct integrity_iint_cache *iint;
|
||||
int must_appraise;
|
||||
|
||||
must_appraise = ima_must_appraise(inode, MAY_ACCESS, FILE_CHECK);
|
||||
if (!must_appraise)
|
||||
return;
|
||||
|
||||
/* Nothing to do if we can't allocate memory */
|
||||
iint = integrity_inode_get(inode);
|
||||
if (!iint)
|
||||
return;
|
||||
|
||||
/* needed for writing the security xattrs */
|
||||
set_bit(IMA_UPDATE_XATTR, &iint->atomic_flags);
|
||||
iint->ima_file_status = INTEGRITY_PASS;
|
||||
}
|
||||
|
||||
/**
|
||||
* ima_post_path_mknod - mark as a new inode
|
||||
* @dentry: newly created dentry
|
||||
@@ -413,9 +440,13 @@ void ima_post_path_mknod(struct dentry *dentry)
|
||||
if (!must_appraise)
|
||||
return;
|
||||
|
||||
/* Nothing to do if we can't allocate memory */
|
||||
iint = integrity_inode_get(inode);
|
||||
if (iint)
|
||||
iint->flags |= IMA_NEW_FILE;
|
||||
if (!iint)
|
||||
return;
|
||||
|
||||
/* needed for re-opening empty files */
|
||||
iint->flags |= IMA_NEW_FILE;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user