hsr: broadcast netlink notifications in the device's net namespace
- 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.271, 5.15.222, 6.1.189, 6.6.158, 6.12.111, 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
Summary
In the Linux kernel, the following vulnerability has been resolved: hsr: broadcast netlink notifications in the device's net namespace The HSR generic netlink family sets .netnsok = true. HSR devices can live in network namespaces other than init_net. Two async notifiers broadcast events with genlmsg_multicast(). They are hsr_nl_ringerror() and hsr_nl_nodedown(). That helper delivers only on the default genl socket in init_net. So the events always land in init_net. The network namespace of the device does not matter. This has two effects. A listener in the device's own namespace never sees its own ring error and node down events. A privileged listener in init_net receives events from HSR devices in other namespaces. The payload carries the peer node MAC (HSR_A_NODE_ADDR) and the slave port ifindex (HSR_A_IFINDEX). Switch both callers to genlmsg_multicast_netns(). Other families with .netnsok = true already do this. Examples are gtp, ovpn, team, batman-adv, netdev-genl, ethtool and handshake. hsr_nl_ringerror() already has the slave port. It uses dev_net(port->dev). hsr_nl_nodedown() takes the namespace from the master port via hsr_port_get_hsr().
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From f421436a591d34fa5279b54a96ac07d70250cc8d · fixed in 9f13023607f1e95bd098cc49052b0c8955d334f9; From f421436a591d34fa5279b54a96ac07d70250cc8d · fixed in 798ccb12810a58a37264685b28ddf990ef49559c; From f421436a591d34fa5279b54a96ac07d70250cc8d · fixed in 9bf45feee630be868ab54e3d0f3d430c07471f0e; From f421436a591d34fa5279b54a96ac07d70250cc8d · fixed in 016b8eaca53bfd57e84ea28b5c9174c89d7679e1; From f421436a591d34fa5279b54a96ac07d70250cc8d · fixed in 25b69f281cebe051a8e4ab19950a939c27ead1bc; From f421436a591d34fa5279b54a96ac07d70250cc8d · fixed in 24b3f1a9982c176d05a523a4bb9314dca0db4488; From f421436a591d34fa5279b54a96ac07d70250cc8d · fixed in a762fabd7ef9a6cc07258684138f9c3f078d0326
- Linux Linux
3.13
- KernelLinux
From 3.13.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53
References 7
git.kernel.org
- stable/c/9f13023607f1e95bd098cc49052b0c8955d334f9
- stable/c/798ccb12810a58a37264685b28ddf990ef49559c
- stable/c/9bf45feee630be868ab54e3d0f3d430c07471f0e
- stable/c/016b8eaca53bfd57e84ea28b5c9174c89d7679e1
- stable/c/25b69f281cebe051a8e4ab19950a939c27ead1bc
- stable/c/24b3f1a9982c176d05a523a4bb9314dca0db4488
- stable/c/a762fabd7ef9a6cc07258684138f9c3f078d0326