bnxt_en: Don't free the live ring's TPA state on queue restart failure
- 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 6.12.112, 6.18.53, 7.2.7
- 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: bnxt_en: Don't free the live ring's TPA state on queue restart failure bnxt_queue_mem_alloc() shallow copies the live RX ring into the clone: memcpy(clone, rxr, sizeof(*rxr)); the code currently clears pointers that the clone owns (such as rx_agg_bmap), but rx_tpa and rx_tpa_idx_map are left pointing at memory of the live ring that was cloned. If an allocation failure happens later and the err_free_tpa_info label is taken, the live ring's memory can be freed while still in use. Fix this by initializing the clone's pointers to NULL to prevent live ring state from being freed inadvertently.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 0997443906b96a051011f220a61e6dce4602ec54 · fixed in e42287b4d38d653f7d4a47f6c29b0c01288bb050; From bd649c5cc958169b8a8a3e77ea926d92d472b02a · fixed in 8ade95619cbfd1fc57f0f1a9a5ebdca2345a8d27; From bd649c5cc958169b8a8a3e77ea926d92d472b02a · fixed in 0596a7caa6fc283e142716739099c038d8714082; From bd649c5cc958169b8a8a3e77ea926d92d472b02a · fixed in 5ce7f36c334d723954855ac769ede2fe0e8f89c8; From 6.12.20 · fixed in 6.12.112
- Linux Linux
6.13
- KernelLinux
fixed in 6.12.112; From 6.13.0 · fixed in 6.18.53; fixed in 7.2.7