crypto: authencesn - reject short ahash digests during instance creation
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.258, 5.15.209, 6.1.175, 6.6.140, 6.12.86, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From f15f05b0a5de667c821a9727c33bce9d1d9b26dd · fixed in 77f59fb2d3aa33e90ec6cbbf45dcfb20ab82b1a9; From f15f05b0a5de667c821a9727c33bce9d1d9b26dd · fixed in 2f31cd1e64a079c845bca31d2da7b3c90a311726; From f15f05b0a5de667c821a9727c33bce9d1d9b26dd · fixed in d4c6a6d08e70bb1083c7c405fc7faacbf19aebc0; From f15f05b0a5de667c821a9727c33bce9d1d9b26dd · fixed in b69933e97efea238ebbfcf70c2b1be1cd03f13e3; From f15f05b0a5de667c821a9727c33bce9d1d9b26dd · fixed in 67f1f0933cc3d78dde222842bcad2778ec7a0b88; From f15f05b0a5de667c821a9727c33bce9d1d9b26dd · fixed in b42821c15445f93daea3e76ada682b2b7181c476; From f15f05b0a5de667c821a9727c33bce9d1d9b26dd · fixed in 9aff81e8217e9de2929084b03b3c7f81988c112b; From f15f05b0a5de667c821a9727c33bce9d1d9b26dd · fixed in 5db6ef9847717329f12c5ea8aba7e9f588a980c0
- Linux Linux
4.11
- KernelLinux
From 4.11.0 · fixed in 5.10.258; From 5.11.0 · fixed in 5.15.209; From 5.16.0 · fixed in 6.1.175; From 6.2.0 · fixed in 6.6.140; From 6.7.0 · fixed in 6.12.86; From 6.13.0 · fixed in 6.18.27; From 6.19.0 · fixed in 7.0.4
References 8
git.kernel.org
- stable/c/77f59fb2d3aa33e90ec6cbbf45dcfb20ab82b1a9
- stable/c/2f31cd1e64a079c845bca31d2da7b3c90a311726
- stable/c/d4c6a6d08e70bb1083c7c405fc7faacbf19aebc0
- stable/c/b69933e97efea238ebbfcf70c2b1be1cd03f13e3
- stable/c/67f1f0933cc3d78dde222842bcad2778ec7a0b88
- stable/c/b42821c15445f93daea3e76ada682b2b7181c476
- stable/c/9aff81e8217e9de2929084b03b3c7f81988c112b
- stable/c/5db6ef9847717329f12c5ea8aba7e9f588a980c0