CVE-2025-37959: bpf: Scrub packet on bpf_redirect_peer
In the Linux kernel, the following vulnerability has been resolved:
bpf: Scrub packet on bpf_redirect_peer
When bpf_redirect_peer is used to redirect packets to a device in
another network namespace, the skb isn't scrubbed. That can lead skb
information from one namespace to be "misused" in another namespace.
As one example, this is causing Cilium to drop traffic when using
bpf_redirect_peer to redirect packets that just went through IPsec
decryption to a container namespace. The following pwru trace shows (1)
the packet path from the host's XFRM layer to the container's XFRM
layer where it's dropped and (2) the number of active skb extensions at
each function.
NETNS MARK IFACE TUPLE FUNC
4026533547 d00 eth0 10.244.3.124:35473->10.244.2.158:53 xfrm_rcv_cb
.active_extensions = (__u8)2,
4026533547 d00 eth0 10.244.3.124:35473->10.244.2.158:53 xfrm4_rcv_cb
.active_extensions = (__u8)2,
4026533547 d00 eth0 10.244.3.124:35473->10.244.2.158:53 gro_cells_receive
.active_extensions = (__u8)2,
[...]
4026533547 0 eth0 10.244.3.124:35473->10.244.2.158:53 skb_do_redirect
.active_extensions = (__u8)2,
4026534999 0 eth0 10.244.3.124:35473->10.244.2.158:53 ip_rcv
.active_extensions = (__u8)2,
4026534999 0 eth0 10.244.3.124:35473->10.244.2.158:53 ip_rcv_core
.active_extensions = (__u8)2,
[...]
4026534999 0 eth0 10.244.3.124:35473->10.244.2.158:53 udp_queue_rcv_one_skb
.active_extensions = (__u8)2,
4026534999 0 eth0 10.244.3.124:35473->10.244.2.158:53 __xfrm_policy_check
.active_extensions = (__u8)2,
4026534999 0 eth0 10.244.3.124:35473->10.244.2.158:53 __xfrm_decode_session
.active_extensions = (__u8)2,
4026534999 0 eth0 10.244.3.124:35473->10.244.2.158:53 security_xfrm_decode_session
.active_extensions = (__u8)2,
4026534999 0 eth0 10.244.3.124:35473->10.244.2.158:53 kfree_skb_reason(SKB_DROP_REASON_XFRM_POLICY)
.active_extensions = (__u8)2,
In this case, there are no XFRM policies in the container's network
namespace so the drop is unexpected. When we decrypt the IPsec packet,
the XFRM state used for decryption is set in the skb extensions. This
information is preserved across the netns switch. When we reach the
XFRM policy check in the container's netns, __xfrm_policy_check drops
the packet with LINUX_MIB_XFRMINNOPOLS because a (container-side) XFRM
policy can't be found that matches the (host-side) XFRM state used for
decryption.
This patch fixes this by scrubbing the packet when using
bpf_redirect_peer, as is done on typical netns switches via veth
devices except skb->mark and skb->tstamp are not zeroed.
Security readout for executives and security teams
Plain-English summary
A Linux networking flaw can carry packet metadata from one network namespace into another when eBPF redirects traffic. The receiving namespace may misinterpret that stale information, causing legitimate traffic to be dropped or mishandled. The documented example affects Cilium traffic after IPsec decryption.
Executive priority
Treat this as an urgent patch-validation issue for exposed container and eBPF networking infrastructure. Prioritize internet-facing or business-critical clusters using Cilium, IPsec, or cross-namespace redirection. Other Linux systems should be inventoried, but the bundle does not establish universal exposure or active attacks.
Technical view
bpf_redirect_peer did not scrub socket-buffer metadata during cross-namespace redirection. Preserved XFRM state could reach the destination namespace, where policy checks used host-side decryption state and unexpectedly dropped packets. The kernel fix scrubs the packet while retaining skb mark and timestamp.
Likely exposure
Exposure is most plausible on Linux systems using bpf_redirect_peer for cross-namespace traffic, particularly container networking involving Cilium and IPsec. The bundle identifies affected kernel versions, but its version data is insufficient to determine every vulnerable distribution build reliably.
Exploitation context
The supplied record is not listed in KEV and provides no evidence of active exploitation. It documents operational packet drops, not a demonstrated attack. The critical 9.4 rating indicates potentially serious confidentiality, integrity, and availability consequences, but practical exploitability is not established by these sources.
Researcher notes
The clearest demonstrated effect is stale XFRM metadata causing an incorrect destination-namespace policy decision and packet loss. The fix adds packet scrubbing to bpf_redirect_peer, analogous to normal veth namespace transitions, except mark and timestamp remain. Exact vulnerable-to-fixed version boundaries require branch-specific vendor confirmation.
Mitigation direction
Apply the vendor kernel update containing the appropriate stable fix for the deployed kernel branch.
Prioritize nodes using eBPF cross-namespace redirection, especially Cilium deployments carrying IPsec traffic.
If updating is delayed, consult Linux distribution guidance; the supplied sources name no alternative mitigation.
Test network-policy and encrypted container traffic before broad production rollout.
Validation and detection
Inventory kernel versions and map each distribution build to its vendor advisory or corresponding stable fix.
Determine whether workloads use bpf_redirect_peer to transfer packets between network namespaces.
Check monitoring for unexpected XFRM policy drops or unexplained container traffic failures.
After updating, verify legitimate encrypted traffic crosses namespaces without unexpected policy rejection.
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.
description · low confidence lookup
Container behavior lookup
The affected technology mentions containers, so container-specific ATT&CK technique review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
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
2ADP 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.