net: hsr: fix memory leak on slave unregistration by removing synced VLANs
- 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.15.216, 6.1.183, 6.6.148, 6.12.101
- 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: net: hsr: fix memory leak on slave unregistration by removing synced VLANs When an HSR master device is brought UP, it auto-adds VLAN 0 via vlan_vid0_add(), which propagates VID 0 to its slave devices (slave A and B). If a slave device is later unregistered while HSR is active (e.g., during netns cleanup or interface destruction), hsr_del_port() is called to detach the slave port from the HSR master. However, hsr_del_port() currently does not delete the VLAN IDs that were synced to the slave device by HSR. As a result, the slave device retains a refcount on VID 0 (and any other synced VLANs). When the slave device is destroyed, its vlan_info / vlan_vid_info structure remains allocated, leading to a memory leak. Fix this by calling vlan_vids_del_by_dev(port->dev, master->dev) in hsr_del_port() before unlinking slave A or slave B ports, matching the propagation logic in hsr_ndo_vlan_rx_add_vid() / hsr_ndo_vlan_rx_kill_vid() and the cleanup behavior in bonding and team drivers.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 5.15.194 · fixed in 5.15.216; From 6.1.153 · fixed in 6.1.183; From 6.6.107 · fixed in 6.6.148; From 6.12.48 · fixed in 6.12.101
- Linux Linux
6.13
References 7
git.kernel.org
- stable/c/ccc822e9e4f09a6c2ca73ad5334570441947f94f
- stable/c/79ff0547676acdeceda445c3fce4071b0a887b70
- stable/c/f72c312af6c7897ab0f8a2b5a63f917a207a4143
- stable/c/21d48408479a17eb65568a765930adea37e4d804
- stable/c/b5ded444621b6180df9f3d4e07045fc1fc1e8cd9
- stable/c/ae995b8002d3af134560a706c0e111a89e26317c
- stable/c/dcf15eaf5641812f1cfc5e96537380132a7da89d