netfilter: conntrack: Avoid nf_ct_helper_hash uses after free
- 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 4.14.322, 4.19.291, 5.4.251, 5.10.188, 5.15.121, 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
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: conntrack: Avoid nf_ct_helper_hash uses after free If nf_conntrack_init_start() fails (for example due to a register_nf_conntrack_bpf() failure), the nf_conntrack_helper_fini() clean-up path frees the nf_ct_helper_hash map. When built with NF_CONNTRACK=y, further netfilter modules (e.g: netfilter_conntrack_ftp) can still be loaded and call nf_conntrack_helpers_register(), independently of whether nf_conntrack initialized correctly. This accesses the nf_ct_helper_hash dangling pointer and causes a uaf, possibly leading to random memory corruption. This patch guards nf_conntrack_helper_register() from accessing a freed or uninitialized nf_ct_helper_hash pointer and fixes possible uses-after-free when loading a conntrack module.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 12f7a505331e6b2754684b509f2ac8f0011ce644 · fixed in 4ee69c91cb8f9ca144bc0861969e5a1a3c6152a7; From 12f7a505331e6b2754684b509f2ac8f0011ce644 · fixed in 00716f25f9697d02a0d9bd622575c7c7321ba3d0; From 12f7a505331e6b2754684b509f2ac8f0011ce644 · fixed in 61c7a5256543ae7d24cd9d21853d514c8632e1e9; From 12f7a505331e6b2754684b509f2ac8f0011ce644 · fixed in 8289d422f5e484efe4a565fe18e862ecd621c175; From 12f7a505331e6b2754684b509f2ac8f0011ce644 · fixed in 6f03ce2f1abcb9f9d0511e3659ca6eb60e39f566; From 12f7a505331e6b2754684b509f2ac8f0011ce644 · fixed in 05561f822f27b9fa88fa5504ddec34bf38833034; From 12f7a505331e6b2754684b509f2ac8f0011ce644 · fixed in fce5cc7cbd4b92f979bf02c9ec5fb69aaeba92d7; From 12f7a505331e6b2754684b509f2ac8f0011ce644 · fixed in 6eef7a2b933885a17679eb8ed0796ddf0ee5309b
- Linux Linux
3.6
- KernelLinux
From 3.6.0 · fixed in 4.14.322; From 4.15.0 · fixed in 4.19.291; From 4.20.0 · fixed in 5.4.251; From 5.5.0 · fixed in 5.10.188; From 5.11.0 · fixed in 5.15.121; From 5.16.0 · fixed in 6.1.39; From 6.2.0 · fixed in 6.4.4
References 8
git.kernel.org
- stable/c/4ee69c91cb8f9ca144bc0861969e5a1a3c6152a7
- stable/c/00716f25f9697d02a0d9bd622575c7c7321ba3d0
- stable/c/61c7a5256543ae7d24cd9d21853d514c8632e1e9
- stable/c/8289d422f5e484efe4a565fe18e862ecd621c175
- stable/c/6f03ce2f1abcb9f9d0511e3659ca6eb60e39f566
- stable/c/05561f822f27b9fa88fa5504ddec34bf38833034
- stable/c/fce5cc7cbd4b92f979bf02c9ec5fb69aaeba92d7
- stable/c/6eef7a2b933885a17679eb8ed0796ddf0ee5309b