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: br_netfilter: do not check confirmed bit in br_nf_local_in() after confirm
When send a broadcast packet to a tap device, which was added to a bridge,
br_nf_local_in() 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/br_netfilter_hooks.c:632 br_nf_local_in+0x168/0x200
CPU: 1 UID: 0 PID: 96 Comm: tap_send Not tainted 6.17.0-rc2-dirty #44 PREEMPT(voluntary)
RIP: 0010:br_nf_local_in+0x168/0x200
Call Trace:
<TASK>
nf_hook_slow+0x3e/0xf0
br_pass_frame_up+0x103/0x180
br_handle_frame_finish+0x2de/0x5b0
br_nf_hook_thresh+0xc0/0x120
br_nf_pre_routing_finish+0x168/0x3a0
br_nf_pre_routing+0x237/0x5e0
br_handle_frame+0x1ec/0x3c0
__netif_receive_skb_core+0x225/0x1210
__netif_receive_skb_one_core+0x37/0xa0
netif_receive_skb+0x36/0x160
tun_get_user+0xa54/0x10c0
tun_chr_write_iter+0x65/0xb0
vfs_write+0x305/0x410
ksys_write+0x60/0xd0
do_syscall_64+0xa4/0x260
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>
---[ end trace 0000000000000000 ]---
To solve the hash conflict, nf_ct_resolve_clash() try to merge the
conntracks, and update skb->_nfct. However, br_nf_local_in() 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 NF_DROP, the
warning may also occur. There is no need to reserve the WARN_ON_ONCE, just
remove it.
Security readout for executives and security teams
Plain-English summary
A Linux bridge-netfilter flaw can trigger a kernel warning because connection tracking uses an outdated reference. The sources rate it CVSS 7.5 High for availability impact only; they do not demonstrate data theft or alteration. Service disruption is plausible on relevant bridge and tap-device hosts, but a reliable denial of service is not established.
Executive priority
Treat this as a high-priority availability issue for virtualization, container, or networking hosts matching the required configuration. Patch within the high-severity SLA, accelerating critical network infrastructure. Current sources do not justify an emergency internet-wide response because active exploitation and reliable denial-of-service behavior are not established.
Technical view
After conntrack confirmation, nf_ct_resolve_clash() can replace skb->_nfct, while br_nf_local_in() retains the old local nfct reference. Its subsequent confirmed-bit warning can therefore fire, including when confirmation returns NF_DROP. The referenced stable-kernel fix removes the obsolete warning check.
Likely exposure
Likely exposure is limited to affected Linux kernels using br_netfilter connection tracking with bridged tap devices. The supplied version data is irregular, including commit hashes and an entry named "0"; validate distribution packages against vendor advisories and the referenced stable fixes rather than relying only on version strings.
Exploitation context
The bundle marks this CVE as absent from KEV, and no supplied source reports active exploitation or a public weaponized exploit. CVSS classifies it as network-accessible without privileges or user interaction, but successful triggering depends on the relevant bridge, tap, and conntrack configuration.
Researcher notes
No CWE is assigned. The disclosed symptom is WARN_ON_ONCE in br_nf_local_in(), caused by stale conntrack state after confirmation or clash resolution. Although CVSS claims high availability impact, the bundle does not explain whether the warning reliably causes a crash, panic, or sustained outage; practical impact needs controlled validation.
Mitigation direction
Install a vendor-supported kernel containing the applicable referenced Linux stable fix.
Reboot affected systems into the updated kernel and retire vulnerable boot entries.
If updating is delayed, consult the Linux distribution vendor; the bundle names no alternative mitigation.
Validation and detection
Inventory running kernels and identify hosts using Linux bridges, tap devices, br_netfilter, and conntrack.
Map each distribution kernel package to its vendor advisory or applicable referenced stable fix.
After updating, confirm systems booted the patched kernel.
Monitor kernel logs for the br_nf_local_in warning signature after remediation.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-39894 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
8Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.