]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
dm-integrity: fix the 'fix_hmac' option
authorMikulas Patocka <mpatocka@redhat.com>
Fri, 10 Jul 2026 12:31:25 +0000 (14:31 +0200)
committerMikulas Patocka <mpatocka@redhat.com>
Fri, 10 Jul 2026 12:38:01 +0000 (14:38 +0200)
commit24d7e5e39b04c1ef8eee0688ca1527e879b22a40
tree197f19213fac79a31a64adc533b4d3875643850d
parent8d4dd2db7f4f3af0d3cd51111d050301c1f00a5c
dm-integrity: fix the 'fix_hmac' option

When the "fix_hmac" argument is used, dm-integrity is supposed to check
the superblock with the journal_mac. However, there was a logic bug in
the code - the code only checked the superblock mac if the bit
SB_FLAG_FIXED_HMAC was set in the superblock. So, the attacker could
clear this bit and bypass the checking trivially.

This commit changes dm-integrity so that when the user specified the
"fix_hmac" flag and the superblock doesn't have the bit
SB_FLAG_FIXED_HMAC set, the activation is aborted with an error.

Unfortunatelly, there's a bug in the integritysetup tool that when using
the 'open' command it passes the "fix_hmac" argument to the kernel even
if the user specified --integrity-legacy-hmac. The bug will be fixed in
the upcoming 2.8.7 release.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Reported-by: Shukai Ni <shukai.ni@kuleuven.be>
drivers/md/dm-integrity.c