Vulnerability in eap-ttls Plugin (CVE-2026-25075)
A vulnerability in the eap-ttls plugin related to processing EAP-TTLS AVPs was fixed. Due to a missing length check that can cause an integer underflow, this could lead to resource exhaustion or a crash. All strongSwan versions since 4.5.0 are affected.
More information is provided in a separate blog entry.
Forwarding ICMP Error Messages
ICMP error messages, such Destination Unreachable or Time Exceeded, may get sent from an IP address that's not covered by the negotiated traffic selectors/IPsec policies. So these will generally get dropped, which can hamper error handling or PMTUD for hosts at the other end of the IPsec tunnel.
The body of an ICMP error message contains the first part of the packet that caused it. Since Linux v6.9, the kernel supports forwarding such ICMP errors by matching the header of that partial packet against the policies to decide whether to forward it. The kernel only does this for ICMP types 3 (Destination Unreachable) and 11 (Time Exceeded) for IPv4 and types 1 (Destination unreachable), 2 (Packet too big), and 3 (Time exceeded) for IPv6. All codes for these types are included (e.g. type 3 code 4, Fragmentation required and DF flag set, for IPv4).
This kernel behavior can now be enabled for a Child SA with the new icmp option. Depending on whether hosts behind VPN gateways can send or need to receive ICMP errors, it has to be enabled on both ends. Note that this is a local option, nothing is negotiated with the peer.
Note that when generating an ICMP error on the IPsec host itself, the kernel currentl yuses a source IP that's technically incorrect. Instead of using one of its own local addresses, it uses the destination address of the packet that caused the error as source. This will be fixed in a future kernel release (likely v7.1).
Examples can be found in the ikev2/net2net-icmp-forward and ipv6/net2net-icmp-forward-ikev2 test scenarios.