rocker: fix memory leak in rocker_world_port_post_fini()
- 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.249, 5.15.199, 6.1.162, 6.6.123, 6.12.69, and 1 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: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: rocker: fix memory leak in rocker_world_port_post_fini() In rocker_world_port_pre_init(), rocker_port->wpriv is allocated with kzalloc(wops->port_priv_size, GFP_KERNEL). However, in rocker_world_port_post_fini(), the memory is only freed when wops->port_post_fini callback is set: if (!wops->port_post_fini) return; wops->port_post_fini(rocker_port); kfree(rocker_port->wpriv); Since rocker_ofdpa_ops does not implement port_post_fini callback (it is NULL), the wpriv memory allocated for each port is never freed when ports are removed. This leads to a memory leak of sizeof(struct ofdpa_port) bytes per port on every device removal. Fix this by always calling kfree(rocker_port->wpriv) regardless of whether the port_post_fini callback exists.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From e420114eef4a3a5025a243b89b0dc343101e3d3c · fixed in 2a3a64d75d2d0727da285749476761ebcad557a3; From e420114eef4a3a5025a243b89b0dc343101e3d3c · fixed in b11e6f926480ab0939fec44781f28558c54be4e7; From e420114eef4a3a5025a243b89b0dc343101e3d3c · fixed in 8ce2e85889939c02740b4245301aa5c35fc94887; From e420114eef4a3a5025a243b89b0dc343101e3d3c · fixed in d448bf96889f1905e740c554780f5c9fa0440566; From e420114eef4a3a5025a243b89b0dc343101e3d3c · fixed in d8723917efda3b4f4c3de78d1ec1e1af015c0be1; From e420114eef4a3a5025a243b89b0dc343101e3d3c · fixed in dce375f4afc348c310d171abcde7ec1499a4c26a; From e420114eef4a3a5025a243b89b0dc343101e3d3c · fixed in 8d7ba71e46216b8657a82ca2ec118bc93812a4d0
- Linux Linux
4.6
- KernelLinux
From 4.6.0 · fixed in 5.10.249; From 5.11.0 · fixed in 5.15.199; From 5.16.0 · fixed in 6.1.162; From 6.2.0 · fixed in 6.6.123; From 6.7.0 · fixed in 6.12.69; From 6.13.0 · fixed in 6.18.9
References 7
git.kernel.org
- stable/c/2a3a64d75d2d0727da285749476761ebcad557a3
- stable/c/b11e6f926480ab0939fec44781f28558c54be4e7
- stable/c/8ce2e85889939c02740b4245301aa5c35fc94887
- stable/c/d448bf96889f1905e740c554780f5c9fa0440566
- stable/c/d8723917efda3b4f4c3de78d1ec1e1af015c0be1
- stable/c/dce375f4afc348c310d171abcde7ec1499a4c26a
- stable/c/8d7ba71e46216b8657a82ca2ec118bc93812a4d0