CVE-2026-31424

netfilter: x_tables: restrict xt_check_match/xt_check_target extensions for NFPROTO_ARP

State
Published
Severity
Not scored
Published
Apr 13, 2026
Updated
Oct 15, 2026
Reserved
Mar 9, 2026

Read the record on cve.org

Description

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

netfilter: x_tables: restrict xt_check_match/xt_check_target extensions for NFPROTO_ARP

Weiming Shi says:

xt_match and xt_target structs registered with NFPROTO_UNSPEC can be loaded by any protocol family through nft_compat. When such a match/target sets .hooks to restrict which hooks it may run on, the bitmask uses NF_INET_* constants. This is only correct for families whose hook layout matches NF_INET_*: IPv4, IPv6, INET, and bridge all share the same five hooks (PRE_ROUTING ... POST_ROUTING).

ARP only has three hooks (IN=0, OUT=1, FORWARD=2) with different semantics. Because NF_ARP_OUT == 1 == NF_INET_LOCAL_IN, the .hooks validation silently passes for the wrong reasons, allowing matches to run on ARP chains where the hook assumptions (e.g. state->in being set on input hooks) do not hold. This leads to NULL pointer dereferences; xt_devgroup is one concrete example:

Oops: general protection fault, probably for non-canonical address 0xdffffc0000000044: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000220-0x0000000000000227] RIP: 0010:devgroup_mt+0xff/0x350 Call Trace: <TASK> nft_match_eval (net/netfilter/nft_compat.c:407) nft_do_chain (net/netfilter/nf_tables_core.c:285) nft_do_chain_arp (net/netfilter/nft_chain_filter.c:61) nf_hook_slow (net/netfilter/core.c:623) arp_xmit (net/ipv4/arp.c:666) </TASK> Kernel panic - not syncing: Fatal exception in interrupt

Fix it by restricting arptables to NFPROTO_ARP extensions only. Note that arptables-legacy only supports:

- arpt_CLASSIFY - arpt_mangle - arpt_MARK

that provide explicit NFPROTO_ARP match/target declarations.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 9291747f118d6404e509747b85ff5f6dfec368d2 to before 80e3c75f71c3ea1e62fcb032382de13e00a68f8bAffected
  • 9291747f118d6404e509747b85ff5f6dfec368d2 to before d9a0af9e43416aa50c0595e15fa01365a1c72c49Affected
  • 9291747f118d6404e509747b85ff5f6dfec368d2 to before 1cd6313c8644bfebbd813a05da9daa21b09dd68cAffected
  • 9291747f118d6404e509747b85ff5f6dfec368d2 to before f00ac65c90ea475719e08d629e2e26c8b4e6999bAffected
  • 9291747f118d6404e509747b85ff5f6dfec368d2 to before e7e1b6bcb389c8708003d40613a59ff2496f6b1fAffected
  • 9291747f118d6404e509747b85ff5f6dfec368d2 to before dc3e27dd7d76e21106b8f9bbdc31f5da74a89014Affected
  • 9291747f118d6404e509747b85ff5f6dfec368d2 to before 3e79374b03bf9a2f282f0eb1d0ac3776f7e0f28aAffected
  • 9291747f118d6404e509747b85ff5f6dfec368d2 to before 3d5d488f11776738deab9da336038add95d342d1Affected
LinuxLinux
  • 2.6.39Affected
  • before 2.6.39Not affected
  • 5.10.253 through 5.10.*Not affected
  • 5.15.203 through 5.15.*Not affected
  • 6.1.168 through 6.1.*Not affected
  • 6.6.134 through 6.6.*Not affected
  • 6.12.81 through 6.12.*Not affected
  • 6.18.22 through 6.18.*Not affected
  • 6.19.12 through 6.19.*Not affected
  • 7.0 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.