Description
In the Linux kernel, the following vulnerability has been resolved: crypto: authencesn - reject short ahash digests during instance creation authencesn requires either a zero authsize or an authsize of at least 4 bytes because the ESN encrypt/decrypt paths always move 4 bytes of high-order sequence number data at the end of the authenticated data. While crypto_authenc_esn_setauthsize() already rejects explicit non-zero authsizes in the range 1..3, crypto_authenc_esn_create() still copied auth->digestsize into inst->alg.maxauthsize without validating it. The AEAD core then initialized the tfm's default authsize from that value. As a result, selecting an ahash with digest size 1..3, such as cbcmac(cipher_null), exposed authencesn instances whose default authsize was invalid even though setauthsize() would have rejected the same value. AF_ALG could then trigger the ESN tail handling with a too-short tag and hit an out-of-bounds access. Reject authencesn instances whose ahash digest size is in the invalid non-zero range 1..3 so that no tfm can inherit an unsupported default authsize.
Product status
f15f05b0a5de667c821a9727c33bce9d1d9b26dd (git) before 77f59fb2d3aa33e90ec6cbbf45dcfb20ab82b1a9
f15f05b0a5de667c821a9727c33bce9d1d9b26dd (git) before 2f31cd1e64a079c845bca31d2da7b3c90a311726
f15f05b0a5de667c821a9727c33bce9d1d9b26dd (git) before d4c6a6d08e70bb1083c7c405fc7faacbf19aebc0
f15f05b0a5de667c821a9727c33bce9d1d9b26dd (git) before b69933e97efea238ebbfcf70c2b1be1cd03f13e3
f15f05b0a5de667c821a9727c33bce9d1d9b26dd (git) before 67f1f0933cc3d78dde222842bcad2778ec7a0b88
f15f05b0a5de667c821a9727c33bce9d1d9b26dd (git) before b42821c15445f93daea3e76ada682b2b7181c476
f15f05b0a5de667c821a9727c33bce9d1d9b26dd (git) before 9aff81e8217e9de2929084b03b3c7f81988c112b
f15f05b0a5de667c821a9727c33bce9d1d9b26dd (git) before 5db6ef9847717329f12c5ea8aba7e9f588a980c0
4.11
Any version before 4.11
5.10.258 (semver)
5.15.209 (semver)
6.1.175 (semver)
6.6.140 (semver)
6.12.86 (semver)
6.18.27 (semver)
7.0.4 (semver)
7.1-rc2 (original_commit_for_fix)
References
git.kernel.org/...c/77f59fb2d3aa33e90ec6cbbf45dcfb20ab82b1a9
git.kernel.org/...c/2f31cd1e64a079c845bca31d2da7b3c90a311726
git.kernel.org/...c/d4c6a6d08e70bb1083c7c405fc7faacbf19aebc0
git.kernel.org/...c/b69933e97efea238ebbfcf70c2b1be1cd03f13e3
git.kernel.org/...c/67f1f0933cc3d78dde222842bcad2778ec7a0b88
git.kernel.org/...c/b42821c15445f93daea3e76ada682b2b7181c476
git.kernel.org/...c/9aff81e8217e9de2929084b03b3c7f81988c112b
git.kernel.org/...c/5db6ef9847717329f12c5ea8aba7e9f588a980c0