xfrm: fix xfrm_state_construct() auth-trunc leak
- 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.269, 5.15.220, 6.1.187, 6.6.156, 6.12.108, and 3 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: xfrm: fix xfrm_state_construct() auth-trunc leak attach_auth_trunc() can allocate x->aalg while leaving x->props.aalgo at zero when the selected auth algorithm has no sadb_alg_id. One real case is cmac(aes). xfrm_state_construct() then treats !x->props.aalgo as "no auth algorithm attached yet" and calls attach_auth(). That overwrites x->aalg and loses the first allocation. Any later failure or teardown only frees the replacement pointer. Check whether x->aalg is already attached instead of inferring that state from x->props.aalgo.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 4447bb33f09444920a8f1d89e1540137429351b6 · fixed in 958ae9f261319e1cdc44879886bcda2263258cca; From 4447bb33f09444920a8f1d89e1540137429351b6 · fixed in fb7f3e74789a3c89647f4eb768f6dfaf4a751e72; From 4447bb33f09444920a8f1d89e1540137429351b6 · fixed in ba0c110c205855b3f1e3130d8c0fdb484d704c8c; From 4447bb33f09444920a8f1d89e1540137429351b6 · fixed in c8837bbe792257af547fd1c0252553ce13148795; From 4447bb33f09444920a8f1d89e1540137429351b6 · fixed in 71d42da01740ec6557837bebec0bc48cfc3b4c39; From 4447bb33f09444920a8f1d89e1540137429351b6 · fixed in cf67361e78dca488d6e4df8396a53e6745a3a80e; From 4447bb33f09444920a8f1d89e1540137429351b6 · fixed in 37426395cb90ef217beec8407a14bd82153793d3; From 4447bb33f09444920a8f1d89e1540137429351b6 · fixed in be19d20e53a239572bb2a28efcc1cd2b069b1ef9; From 4447bb33f09444920a8f1d89e1540137429351b6 · fixed in c12cbf56320fb633484ee0ca1fb7d68d6b64b213
- Linux Linux
2.6.33
- KernelLinux
From 2.6.33 · fixed in 5.10.269; From 5.11.0 · fixed in 5.15.220; From 5.16.0 · fixed in 6.1.187; From 6.2.0 · fixed in 6.6.156; From 6.7.0 · fixed in 6.12.108; From 6.13.0 · fixed in 6.18.49; From 6.19.0 · fixed in 7.1.13; From 7.2.0 · fixed in 7.2.3
References 9
git.kernel.org
- stable/c/958ae9f261319e1cdc44879886bcda2263258cca
- stable/c/fb7f3e74789a3c89647f4eb768f6dfaf4a751e72
- stable/c/ba0c110c205855b3f1e3130d8c0fdb484d704c8c
- stable/c/c8837bbe792257af547fd1c0252553ce13148795
- stable/c/71d42da01740ec6557837bebec0bc48cfc3b4c39
- stable/c/cf67361e78dca488d6e4df8396a53e6745a3a80e
- stable/c/37426395cb90ef217beec8407a14bd82153793d3
- stable/c/be19d20e53a239572bb2a28efcc1cd2b069b1ef9
- stable/c/c12cbf56320fb633484ee0ca1fb7d68d6b64b213