CVE-2025-22021
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
16/04/2025
Last modified:
16/04/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
netfilter: socket: Lookup orig tuple for IPv6 SNAT<br />
<br />
nf_sk_lookup_slow_v4 does the conntrack lookup for IPv4 packets to<br />
restore the original 5-tuple in case of SNAT, to be able to find the<br />
right socket (if any). Then socket_match() can correctly check whether<br />
the socket was transparent.<br />
<br />
However, the IPv6 counterpart (nf_sk_lookup_slow_v6) lacks this<br />
conntrack lookup, making xt_socket fail to match on the socket when the<br />
packet was SNATed. Add the same logic to nf_sk_lookup_slow_v6.<br />
<br />
IPv6 SNAT is used in Kubernetes clusters for pod-to-world packets, as<br />
pods&#39; addresses are in the fd00::/8 ULA subnet and need to be replaced<br />
with the node&#39;s external address. Cilium leverages Envoy to enforce L7<br />
policies, and Envoy uses transparent sockets. Cilium inserts an iptables<br />
prerouting rule that matches on `-m socket --transparent` and redirects<br />
the packets to localhost, but it fails to match SNATed IPv6 packets due<br />
to that missing conntrack lookup.
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/1ca2169cc19dca893c7aae6af122852097435d16
- https://git.kernel.org/stable/c/1ec43100f7123010730b7ddfc3d5c2eac19e70e7
- https://git.kernel.org/stable/c/221c27259324ec1404f028d4f5a0f2ae7f63ee23
- https://git.kernel.org/stable/c/2bb139e483f8cbe488d19d8c1135ac3615e2668c
- https://git.kernel.org/stable/c/41904cbb343d115931d6bf79aa2c815cac4ef72b
- https://git.kernel.org/stable/c/5251041573850e5020cd447374e23010be698898
- https://git.kernel.org/stable/c/58ab63d3ded2ca6141357a2b24eee8453d0f871d
- https://git.kernel.org/stable/c/6488b96a79a26e19100ad872622f04e93b638d7f
- https://git.kernel.org/stable/c/932b32ffd7604fb00b5c57e239a3cc4d901ccf6e