CVE-2026-64554

netfilter: bridge: fix stale prevhdr pointer in br_ip6_fragment()

State
Published
Severity
8.8 High
Published
Jul 27, 2026
Updated
Oct 19, 2026
Reserved
Jul 19, 2026

Read the record on cve.org

Description

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

netfilter: bridge: fix stale prevhdr pointer in br_ip6_fragment()

br_ip6_fragment() gets prevhdr, a pointer into the skb head, from ip6_find_1stfragopt(), then calls skb_checksum_help(). For a cloned skb skb_checksum_help() reallocates the head via pskb_expand_head(), leaving prevhdr dangling. It is later dereferenced in ip6_frag_next(), causing a use-after-free write.

Save prevhdr's offset before skb_checksum_help() and recompute it after, like commit ef0efcd3bd3f ("ipv6: Fix dangling pointer when ipv6 fragment").

BUG: KASAN: slab-use-after-free in ip6_frag_next (net/ipv6/ip6_output.c:857) Write of size 1 at addr ffff888013ff5016 by task exploit/141 Call Trace: ... kasan_report (mm/kasan/report.c:595) ip6_frag_next (net/ipv6/ip6_output.c:857) br_ip6_fragment (net/ipv6/netfilter.c:212) nf_ct_bridge_post (net/bridge/netfilter/nf_conntrack_bridge.c:407) nf_hook_slow (net/netfilter/core.c:619) br_forward_finish (net/bridge/br_forward.c:66) __br_forward (net/bridge/br_forward.c:115) maybe_deliver (net/bridge/br_forward.c:191) br_flood (net/bridge/br_forward.c:245) br_handle_frame_finish (net/bridge/br_input.c:229) br_handle_frame (net/bridge/br_input.c:442) ... packet_sendmsg (net/packet/af_packet.c:3114) ... do_syscall_64 (arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) Kernel panic - not syncing: Fatal exception in interrupt

Scores

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

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 764dd163ac922f8683b5bcd3007251ce7b26cd33 to before 8c10778ec674b67a07ea042fcba64270f3f38a5aAffected
  • 764dd163ac922f8683b5bcd3007251ce7b26cd33 to before 2731efa6364e47934c96eb69e01ea131e8af8030Affected
  • 764dd163ac922f8683b5bcd3007251ce7b26cd33 to before 00c06ef8c018493943891a7d0ca82b71b24f3180Affected
  • 764dd163ac922f8683b5bcd3007251ce7b26cd33 to before c141f69d0a0fb16964dbc293650047e69bda8af7Affected
  • 764dd163ac922f8683b5bcd3007251ce7b26cd33 to before f2e6596d10783557aeb9668da2a3b4d19deb2001Affected
  • 764dd163ac922f8683b5bcd3007251ce7b26cd33 to before 1c4f67c89fd27c4df4c70b135c2c59627698b3c0Affected
  • 764dd163ac922f8683b5bcd3007251ce7b26cd33 to before 4ac981a8b7ce7aec99a52d08f8a8953e8e120067Affected
  • 764dd163ac922f8683b5bcd3007251ce7b26cd33 to before 86f3ce81dd2b4b0aa2c3016c989a943e4b1b643dAffected
LinuxLinux
  • 5.3Affected
  • before 5.3Not affected
  • 5.10.261 through 5.10.*Not affected
  • 5.15.212 through 5.15.*Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.97 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 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.