net: drop_monitor: fix info leak in NET_DM_ATTR_PAYLOAD
- 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.1.189, 6.6.158, 6.12.111, 6.18.53, 7.1.6
- 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: drop_monitor: fix info leak in NET_DM_ATTR_PAYLOAD net_dm_packet_report_fill() and net_dm_hw_packet_report_fill() open code the NET_DM_ATTR_PAYLOAD attribute to avoid zeroing the packet payload before overwriting it with skb_copy_bits(). skb_put() reserves nla_total_size(payload_len), i.e. the header plus the NLA_ALIGN() padding, but only payload_len bytes are copied in. When payload_len is not a multiple of 4 the 1-3 padding bytes are never initialized and are leaked to user space inside the netlink message. KMSAN confirms the leak for the software path when the packet payload length is not 4-byte aligned: BUG: KMSAN: kernel-infoleak in _copy_to_iter _copy_to_iter __skb_datagram_iter skb_copy_datagram_iter netlink_recvmsg sock_recvmsg __sys_recvfrom Uninit was created at: kmem_cache_alloc_node_noprof __alloc_skb net_dm_packet_work Bytes 173-175 of 176 are uninitialized Use __nla_reserve(), which sets up the attribute header and zeroes the padding, instead of open coding the attribute construction.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From ca30707dee2bc8bc81cfd8b4277fe90f7ca6df1f · fixed in d427b152b663cb2b19fcd449d792e17edbe4a938; From ca30707dee2bc8bc81cfd8b4277fe90f7ca6df1f · fixed in 3c0bc7dcc5f9257d25c59eeb7ccb4df33dcfc446; From ca30707dee2bc8bc81cfd8b4277fe90f7ca6df1f · fixed in 05173de42a9923a3eaadebcb0dd5bc83ffba174c; From ca30707dee2bc8bc81cfd8b4277fe90f7ca6df1f · fixed in 89178ffe5bddc99c057ba2768db1f8d9c5e1408c; From ca30707dee2bc8bc81cfd8b4277fe90f7ca6df1f · fixed in 8fd6975d2aecc36b25ee82b6aef88e62a3527ccb; From ca30707dee2bc8bc81cfd8b4277fe90f7ca6df1f · fixed in 5e9c8baee0329fbefe7c67aea945e2a07f15e98b
- Linux Linux
5.4
- KernelLinux
From 5.4.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; From 6.19.0 · fixed in 7.1.6