WSL2-Linux-Kernel/drivers/md
Mikulas Patocka 6b4bf97587 dm integrity: fix memory corruption when tag_size is less than digest size
commit 08c1af8f1c upstream.

It is possible to set up dm-integrity in such a way that the
"tag_size" parameter is less than the actual digest size. In this
situation, a part of the digest beyond tag_size is ignored.

In this case, dm-integrity would write beyond the end of the
ic->recalc_tags array and corrupt memory. The corruption happened in
integrity_recalc->integrity_sector_checksum->crypto_shash_final.

Fix this corruption by increasing the tags array so that it has enough
padding at the end to accomodate the loop in integrity_recalc() being
able to write a full digest size for the last member of the tags
array.

Cc: stable@vger.kernel.org # v4.19+
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-20 09:34:20 +02:00
..
bcache bcache: fixup multiple threads crash 2022-04-08 14:23:01 +02:00
persistent-data dm space map common: add bounds check to sm_ll_lookup_bitmap() 2022-01-27 11:04:53 +01:00
Kconfig dm: make EBS depend on !HIGHMEM 2021-08-16 10:50:32 -06:00
Makefile dm ima: measure data on table load 2021-08-10 13:32:40 -04:00
dm-bio-prison-v1.c
dm-bio-prison-v1.h
dm-bio-prison-v2.c
dm-bio-prison-v2.h
dm-bio-record.h
dm-bufio.c
dm-builtin.c
dm-cache-background-tracker.c
dm-cache-background-tracker.h
dm-cache-block-types.h
dm-cache-metadata.c
dm-cache-metadata.h
dm-cache-policy-internal.h
dm-cache-policy-smq.c
dm-cache-policy.c
dm-cache-policy.h
dm-cache-target.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-clone-metadata.c
dm-clone-metadata.h
dm-clone-target.c dm clone: make array 'descs' static 2021-10-12 13:54:10 -04:00
dm-core.h dm: interlock pending dm_io and dm_wait_for_bios_completion 2022-04-08 14:22:57 +02:00
dm-crypt.c dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS 2022-04-08 14:23:33 +02:00
dm-delay.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-dust.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-ebs-target.c - Add DM infrastructure for IMA-based remote attestion. These changes 2021-08-31 14:55:09 -07:00
dm-era-target.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-exception-store.c
dm-exception-store.h
dm-flakey.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-ima.c integrity-v5.15 2021-09-02 12:51:41 -07:00
dm-ima.h dm ima: add version info to dm related events in ima log 2021-08-20 15:59:47 -04:00
dm-init.c
dm-integrity.c dm integrity: fix memory corruption when tag_size is less than digest size 2022-04-20 09:34:20 +02:00
dm-io-tracker.h dm writecache: make writeback pause configurable 2021-06-28 16:30:13 -04:00
dm-io.c
dm-ioctl.c dm ioctl: prevent potential spectre v1 gadget 2022-04-13 20:59:05 +02:00
dm-kcopyd.c dm writecache: have ssd writeback wait if the kcopyd workqueue is busy 2021-06-15 15:42:03 -04:00
dm-linear.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-log-userspace-base.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-log-userspace-transfer.c
dm-log-userspace-transfer.h
dm-log-writes.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-log.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-mpath.c dm ima: update dm target attributes for ima measurements 2021-08-20 16:07:36 -04:00
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-ps-historical-service-time.c dm mpath: only use ktime_get_ns() in historical selector 2022-04-20 09:34:13 +02:00
dm-ps-io-affinity.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-ps-queue-length.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-ps-round-robin.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-ps-service-time.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-raid.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-raid1.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-region-hash.c
dm-rq.c dm: requeue IO if mapping table not yet available 2022-04-13 20:59:06 +02:00
dm-rq.h
dm-snap-persistent.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-snap-transient.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-snap.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-stats.c dm: fix double accounting of flush with data 2022-04-08 14:22:57 +02:00
dm-stats.h dm: fix double accounting of flush with data 2022-04-08 14:22:57 +02:00
dm-stripe.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-switch.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-sysfs.c
dm-table.c libnvdimm for v5.15 2021-09-09 11:39:57 -07:00
dm-target.c
dm-thin-metadata.c dm space maps: improve performance with inc/dec on ranges of blocks 2021-06-04 12:07:22 -04:00
dm-thin-metadata.h
dm-thin.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-uevent.c
dm-uevent.h
dm-unstripe.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-verity-fec.c
dm-verity-fec.h
dm-verity-target.c dm verity: skip redundant verity_handle_err() on I/O errors 2021-10-12 13:54:09 -04:00
dm-verity-verify-sig.c
dm-verity-verify-sig.h
dm-verity.h
dm-writecache.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-zero.c
dm-zone.c dm zone: fix dm_revalidate_zones() memory allocation 2021-06-25 15:25:23 -04:00
dm-zoned-metadata.c dm zoned: check zone capacity 2021-06-04 12:07:28 -04:00
dm-zoned-reclaim.c dm kcopyd: avoid useless atomic operations 2021-06-04 12:07:24 -04:00
dm-zoned-target.c dm: update target status functions to support IMA measurement 2021-08-10 13:34:23 -04:00
dm-zoned.h
dm.c dm: requeue IO if mapping table not yet available 2022-04-13 20:59:06 +02:00
dm.h dm: introduce zone append emulation 2021-06-04 12:07:37 -04:00
md-autodetect.c
md-bitmap.c md: Constify attribute_group structs 2021-06-14 22:32:07 -07:00
md-bitmap.h
md-cluster.c
md-cluster.h
md-faulty.c md: mark some personalities as deprecated 2021-06-14 22:32:07 -07:00
md-linear.c md: mark some personalities as deprecated 2021-06-14 22:32:07 -07:00
md-linear.h
md-multipath.c md: mark some personalities as deprecated 2021-06-14 22:32:07 -07:00
md-multipath.h
md.c block: drop unused includes in <linux/genhd.h> 2022-03-16 14:23:46 +01:00
md.h md: Move alloc/free acct bioset in to personality 2022-01-27 11:05:08 +01:00
raid0.c md: Move alloc/free acct bioset in to personality 2022-01-27 11:05:08 +01:00
raid0.h
raid1-10.c
raid1.c md/raid1: fix missing bitmap update w/o WriteMostly devices 2022-01-11 15:35:15 +01:00
raid1.h md/raid1: enable io accounting 2021-06-14 22:32:07 -07:00
raid5-cache.c
raid5-log.h
raid5-ppl.c
raid5.c md: Move alloc/free acct bioset in to personality 2022-01-27 11:05:08 +01:00
raid5.h
raid10.c for-5.15/drivers-2021-08-30 2021-08-30 19:01:46 -07:00
raid10.h md/raid10: enable io accounting 2021-06-14 22:32:07 -07:00