CVE-2024-27415: netfilter: bridge: confirm multicast packets before passing them up the stack
In the Linux kernel, the following vulnerability has been resolved:
netfilter: bridge: confirm multicast packets before passing them up the stack
conntrack nf_confirm logic cannot handle cloned skbs referencing
the same nf_conn entry, which will happen for multicast (broadcast)
frames on bridges.
Example:
macvlan0
|
br0
/ \
ethX ethY
ethX (or Y) receives a L2 multicast or broadcast packet containing
an IP packet, flow is not yet in conntrack table.
1. skb passes through bridge and fake-ip (br_netfilter)Prerouting.
-> skb->_nfct now references a unconfirmed entry
2. skb is broad/mcast packet. bridge now passes clones out on each bridge
interface.
3. skb gets passed up the stack.
4. In macvlan case, macvlan driver retains clone(s) of the mcast skb
and schedules a work queue to send them out on the lower devices.
The clone skb->_nfct is not a copy, it is the same entry as the
original skb. The macvlan rx handler then returns RX_HANDLER_PASS.
5. Normal conntrack hooks (in NF_INET_LOCAL_IN) confirm the orig skb.
The Macvlan broadcast worker and normal confirm path will race.
This race will not happen if step 2 already confirmed a clone. In that
case later steps perform skb_clone() with skb->_nfct already confirmed (in
hash table). This works fine.
But such confirmation won't happen when eb/ip/nftables rules dropped the
packets before they reached the nf_confirm step in postrouting.
Pablo points out that nf_conntrack_bridge doesn't allow use of stateful
nat, so we can safely discard the nf_conn entry and let inet call
conntrack again.
This doesn't work for bridge netfilter: skb could have a nat
transformation. Also bridge nf prevents re-invocation of inet prerouting
via 'sabotage_in' hook.
Work around this problem by explicit confirmation of the entry at LOCAL_IN
time, before upper layer has a chance to clone the unconfirmed entry.
The downside is that this disables NAT and conntrack helpers.
Alternative fix would be to add locking to all code parts that deal with
unconfirmed packets, but even if that could be done in a sane way this
opens up other problems, for example:
-m physdev --physdev-out eth0 -j SNAT --snat-to 1.2.3.4
-m physdev --physdev-out eth1 -j SNAT --snat-to 1.2.3.5
For multicast case, only one of such conflicting mappings will be
created, conntrack only handles 1:1 NAT mappings.
Users should set create a setup that explicitly marks such traffic
NOTRACK (conntrack bypass) to avoid this, but we cannot auto-bypass
them, ruleset might have accept rules for untracked traffic already,
so user-visible behaviour would change.
Security readout for executives and security teams
Plain-English summary
A Linux networking race can occur when bridged multicast or broadcast traffic shares an unconfirmed connection-tracking record across packet clones. Under specific bridge, macvlan, and filtering conditions, concurrent processing can mishandle that record. The supplied CVSS score is 8.8, indicating potentially serious confidentiality, integrity, and availability impact, although the sources do not document a demonstrated outcome.
Executive priority
Treat exposed bridging hosts as a high-priority patching item, particularly network appliances, virtualization hosts, and container platforms using the affected configuration. The score is high, but urgency should be configuration-driven because the race requires specific networking behavior and active exploitation is not established. Obtain distribution confirmation for backported fixes before declaring systems remediated.
Technical view
Cloned sk_buffs can reference the same unconfirmed nf_conn entry. The normal LOCAL_IN confirmation path can then race with macvlan broadcast work. This is possible when bridge netfilter processes multicast or broadcast IP traffic and filtering prevents earlier postrouting confirmation. Stable kernel changes explicitly confirm the entry at LOCAL_IN before an upper layer can clone it.
Likely exposure
Prioritize Linux systems using bridges, br_netfilter, connection tracking, multicast or broadcast IP traffic, and macvlan-like cloning. Exposure is especially relevant where ebtables, iptables, or nftables rules can drop packets before postrouting confirmation. The supplied affected data includes kernels through 6.8, but distribution backports require vendor-specific verification.
Exploitation context
The CVSS vector indicates adjacent-network reachability, low complexity, no privileges, and no user interaction. However, the supplied sources provide no public exploit evidence, and the CVE is not listed as KEV. Active exploitation should therefore not be claimed. Practical exploitation requirements and reliable security outcomes remain insufficiently documented in the bundle.
Researcher notes
The core invariant failure is shared ownership of an unconfirmed nf_conn across cloned packets. The fix moves confirmation to bridge LOCAL_IN before upper-layer cloning. Sources note a tradeoff involving NAT and conntrack helpers and explain why automatic bypass is unsafe. No CWE, crash signature, proof of concept, exploitation telemetry, or detailed security outcome is supplied.
Mitigation direction
Install a vendor-supported kernel containing the applicable stable fix or confirmed backport.
Match the running kernel against vendor advisories and the referenced stable commits.
Where patching is delayed, evaluate explicit NOTRACK handling for affected traffic, as suggested by the kernel description.
Test NOTRACK changes carefully because tracked and untracked firewall behavior may differ.
Review vendor guidance before changing NAT, conntrack-helper, or bridge-filtering behavior.
Validation and detection
Inventory kernel versions and identify vendor backports of the referenced fixes.
Identify hosts using Linux bridges, br_netfilter, macvlan, and connection tracking.
Review multicast or broadcast filtering that can prevent postrouting confirmation.
Confirm the applicable stable commit exists in each deployed kernel build.
Regression-test bridge filtering, NAT, conntrack helpers, and multicast delivery 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-2024-27415 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.
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.