In the Linux kernel, the following vulnerability has been resolved:
dm integrity: fix memory corruption when tag_size is less than digest size
It is possible to set up dm-integrity in such a way that the "tagsize" parameter is less than the actual digest size. In this situation, a part of the digest beyond tagsize is ignored.
In this case, dm-integrity would write beyond the end of the ic->recalctags array and corrupt memory. The corruption happened in integrityrecalc->integritysectorchecksum->cryptoshashfinal.
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.