CVE-2025-39894: netfilter: br_netfilter: do not check confirmed bit in br_nf_local_in() after confirm
In the Linux kernel, the following vulnerability has been resolved:
netfilter: brnetfilter: do not check confirmed bit in brnflocalin() after confirm
When send a broadcast packet to a tap device, which was added to a bridge, brnflocalin() is called to confirm the conntrack. If another conntrack with the same hash value is added to the hash table, which can be triggered by a normal packet to a non-bridge device, the below warning may happen.
------------[ cut here ]------------ WARNING: CPU: 1 PID: 96 at net/bridge/brnetfilterhooks.c:632 brnflocalin+0x168/0x200 CPU: 1 UID: 0 PID: 96 Comm: tapsend Not tainted 6.17.0-rc2-dirty #44 PREEMPT(voluntary) RIP: 0010:brnflocalin+0x168/0x200 Call Trace: <TASK> nfhookslow+0x3e/0xf0 brpassframeup+0x103/0x180 brhandleframefinish+0x2de/0x5b0 brnfhookthresh+0xc0/0x120 brnfpreroutingfinish+0x168/0x3a0 brnfprerouting+0x237/0x5e0 brhandleframe+0x1ec/0x3c0 netifreceiveskbcore+0x225/0x1210 netifreceiveskbonecore+0x37/0xa0 netifreceiveskb+0x36/0x160 tungetuser+0xa54/0x10c0 tunchrwriteiter+0x65/0xb0 vfswrite+0x305/0x410 ksyswrite+0x60/0xd0 dosyscall64+0xa4/0x260 entrySYSCALL64afterhwframe+0x77/0x7f </TASK> ---[ end trace 0000000000000000 ]---
To solve the hash conflict, nfctresolveclash() try to merge the conntracks, and update skb->nfct. However, brnflocalin() still use the old ct from local variable 'nfct' after confirm(), which leads to this warning.
If confirm() does not insert the conntrack entry and return NFDROP, the warning may also occur. There is no need to reserve the WARNONONCE, just remove it.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Linux kernel (netfilter/bridge br_netfilter_hooks.c)to a version that resolves this vulnerability.Fixed in 6.17.0-rc2-dirtyPatch netfilter: br_netfilter: do not check confirmed bit in br_nf_local_in() after confirm - Operational
Reboot/apply the kernel update that includes the fix for the netfilter/bridge warning (br_netfilter: do not check confirmed bit in br_nf_local_in() after confirm) to ensure the patched br_nf_local_in() logic is in effect.
Event History
Frequently Asked Questions
What is the severity of CVE-2025-39894?
CVE-2025-39894 is classified as a moderate severity vulnerability in the Linux kernel.
How do I fix CVE-2025-39894?
To fix CVE-2025-39894, you should update the Linux kernel to the latest patched version provided by the vendor.
What systems are affected by CVE-2025-39894?
CVE-2025-39894 affects the Linux kernel, specifically when handling broadcast packets in bridge tap devices.
Is there any workaround for CVE-2025-39894?
Currently, there are no recommended workarounds for CVE-2025-39894, so updating the kernel is the best course of action.
What types of attacks could exploit CVE-2025-39894?
CVE-2025-39894 could potentially be exploited in scenarios involving crafted broadcast packets, impacting the network connectivity.