CVE-2026-52942

netfilter: nf_log: validate MAC header was set before dumping it

State
Published
Severity
7.1 High
Published
Jun 24, 2026
Updated
Oct 19, 2026
Reserved
Jun 9, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

netfilter: nf_log: validate MAC header was set before dumping it

The fallback path of dump_mac_header() guards the MAC header access only with "skb->mac_header != skb->network_header", without checking skb_mac_header_was_set(). When the MAC header is unset, mac_header is 0xffff, so the test passes and skb_mac_header(skb) returns skb->head + 0xffff, ~64 KiB past the buffer; the loop then reads dev->hard_header_len bytes out of bounds into the kernel log.

This is reachable via the netdev logger: nf_log_unknown_packet() calls dump_mac_header() unconditionally, and an skb sent through AF_PACKET with PACKET_QDISC_BYPASS reaches the egress hook with mac_header still unset (__dev_queue_xmit(), which would reset it, is bypassed).

Add the skb_mac_header_was_set() check the ARPHRD_ETHER path already uses, and replace the open-coded MAC header length test with skb_mac_header_len(). Only skbs with an unset MAC header are affected; valid ones are dumped as before.

BUG: KASAN: slab-out-of-bounds in dump_mac_header (net/netfilter/nf_log_syslog.c:831) Read of size 1 at addr ffff88800ea49d3f by task exploit/148 Call Trace: kasan_report (mm/kasan/report.c:595) dump_mac_header (net/netfilter/nf_log_syslog.c:831) nf_log_netdev_packet (net/netfilter/nf_log_syslog.c:938 net/netfilter/nf_log_syslog.c:963) nf_log_packet (net/netfilter/nf_log.c:260) nft_log_eval (net/netfilter/nft_log.c:60) nft_do_chain (net/netfilter/nf_tables_core.c:285) nft_do_chain_netdev (net/netfilter/nft_chain_filter.c:307) nf_hook_slow (net/netfilter/core.c:619) nf_hook_direct_egress (net/packet/af_packet.c:257) packet_xmit (net/packet/af_packet.c:280) packet_sendmsg (net/packet/af_packet.c:3114) __sys_sendto (net/socket.c:2265)

Scores

CVSSScoreVectorSource
3.17.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:HLinux

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 7eb9282cd0efac08b8377cbd5037ba297c77e3f7 to before 2e96e1bc9b4d5450e6c33f078e19a9bc1dda6c0bAffected
  • 7eb9282cd0efac08b8377cbd5037ba297c77e3f7 to before d704ee9c7bc68a161684c51a7ac05b446dcf38d4Affected
  • 7eb9282cd0efac08b8377cbd5037ba297c77e3f7 to before befb8968a2abdfa948d5600ea7f7a509a292a590Affected
  • 7eb9282cd0efac08b8377cbd5037ba297c77e3f7 to before 8a81e336da685423f5b64aac4d571e63d674c52aAffected
  • 7eb9282cd0efac08b8377cbd5037ba297c77e3f7 to before c38d41134085193efd5b237cf513ad5b3421a60dAffected
  • 7eb9282cd0efac08b8377cbd5037ba297c77e3f7 to before af1b7699466f6556b351fa25d3dc870abfb5d310Affected
  • 7eb9282cd0efac08b8377cbd5037ba297c77e3f7 to before 65ef7397eb9a296e91839f5fd10be96f23d332e7Affected
  • 7eb9282cd0efac08b8377cbd5037ba297c77e3f7 to before a84b6fedbc97078788be78dbdd7517d143ad1a77Affected
LinuxLinux
  • 2.6.36Affected
  • before 2.6.36Not affected
  • 5.10.261 through 5.10.*Not affected
  • 5.15.210 through 5.15.*Not affected
  • 6.1.176 through 6.1.*Not affected
  • 6.6.143 through 6.6.*Not affected
  • 6.12.94 through 6.12.*Not affected
  • 6.18.36 through 6.18.*Not affected
  • 7.0.13 through 7.0.*Not affected
  • 7.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.