Skip to content

Commit 09091c4

Browse files
committed
ima: use IMA default hash algorithm for integrity violations
Integrity file violations - ToM/ToU, open writers - are recorded in the IMA measurement list, containing 0x00's in both the template data and file data hash fields, but 0xFF's are actually extended into TPM PCRs. Although the original 'ima' template data field ('d') is limited to 20 bytes, the 'd-ng' template digest field is not. The violation file data hash template field ('d-ng') is unnecessarily hard coded to SHA1. Instead of simply replacing the hard coded SHA1 hash algorithm with a larger hash algorithm, use the hash algorithm as defined in "ima_hash_algo". ima_hash_algo is set to either the Kconfig IMA default hash algorithm or as defined on the boot command line (ima_hash=). Including a non-SHA1 file data hash algorithm in the 'd-ng' field of violations is a cosmetic change. The template data hash field, which is extended into the TPM PCRs, is not affected by this change and should not affect attestation of the IMA measurement list. Tested-by: Stefan Berger <stefanb@linux.ibm.com> Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
1 parent 6446646 commit 09091c4

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

security/integrity/ima/ima_template_lib.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ int ima_eventdigest_init(struct ima_event_data *event_data,
370370
int ima_eventdigest_ng_init(struct ima_event_data *event_data,
371371
struct ima_field_data *field_data)
372372
{
373-
u8 *cur_digest = NULL, hash_algo = HASH_ALGO_SHA1;
373+
u8 *cur_digest = NULL, hash_algo = ima_hash_algo;
374374
u32 cur_digestsize = 0;
375375

376376
if (event_data->violation) /* recording a violation. */

0 commit comments

Comments
 (0)