CVE-2026-12413: Libreswan Pluto IKEv2 Denial of Service Vulnerability Analysis
Libreswan, a widely-deployed open-source VPN implementation, contains a flaw in how it processes fragmented IKEv2 (Internet Key Exchange version 2) messages. When a specially malformed fragment arrives, the pluto daemon—the core IKEv2 negotiation process—crashes and restarts. An attacker can repeatedly send these crafted fragments to force repeated crashes, creating a denial-of-service condition. The flaw stems from an off-by-one error that allows the daemon to write beyond its intended buffer bounds, triggering a fatal assertion. Remote code execution is not possible. Only systems configured to accept IKEv2 connections without explicitly disabling fragmentation are at risk.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-193, CWE-617
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-07-02 / 2026-07-08
NVD description (verbatim)
An invalidly formatted IKEv2 fragment causes the Libreswan pluto daemon to crash and restart. Continued exploitation would cause a denial of service. The function reassemble_v2_incoming_fragments() would ignore unknown outer payloads but still store these in a fixed size array msg_digest.digest[PAYLIMIT]. An off-by-one error in the assertion PASSERT(logger, md->digest_roof < elemsof(md->digest)) causes the daemon to abort. No remote code execution is possible. Any configuration that allows IKEv2 connections that do not set fragmentation=no are vulnerable. IKEv1 is not affected.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability exists in the reassemble_v2_incoming_fragments() function within Libreswan's pluto daemon. The function processes IKEv2 protocol fragments and stores payload information in a fixed-size array (msg_digest.digest[PAYLIMIT]). The code fails to properly validate the count of stored payloads; an off-by-one error in the assertion PASSERT(logger, md->digest_roof < elemsof(md->digest)) allows the digest_roof counter to equal or exceed the array bounds. When this occurs, the assertion fails and the daemon aborts. An attacker sending an IKEv2 packet with an invalid fragment structure—specifically one that causes the payload count to exceed expectations—triggers this condition. IKEv1 implementations are unaffected. The vulnerability is only exploitable against configurations where IKEv2 fragmentation is enabled (the default state; fragmentation=no must be explicitly set to disable it).
Business impact
Organizations relying on Libreswan for VPN gateway functionality or remote access infrastructure face service availability risk. Repeated exploitation forces the pluto daemon to restart, interrupting VPN tunnels and blocking legitimate IPsec connections. In production environments handling remote workforce access, incident response, or site-to-site connectivity, a successful denial-of-service attack could isolate critical network segments or prevent authorized users from establishing secure connections. The attack requires no authentication and can be mounted from the network interface that accepts IKEv2 traffic, making it accessible to external threat actors if the VPN endpoint is internet-facing. Recovery is automatic (the daemon restarts), but sustained attacks degrade availability.
Affected systems
Libreswan is affected. The vulnerability applies to any deployment running a vulnerable Libreswan version with IKEv2 enabled and fragmentation not explicitly disabled. Administrators who have set fragmentation=no in their configuration are not vulnerable. Common affected scenarios include: (1) Libreswan-based VPN gateways (on-premises or cloud) accepting remote IKEv2 connections; (2) road-warrior setups using Libreswan clients configured to accept fragmented responses; (3) site-to-site IPsec tunnels where the peer sends fragmented IKEv2 packets. Check your Libreswan version against vendor advisories to confirm vulnerability status and patch availability.
Exploitability
The attack is straightforward to execute: an attacker must craft an IKEv2 packet with an invalid fragment structure and send it to the IKEv2 port (typically UDP 500 or 4500). No prior authentication is required, no user interaction is needed, and the attack succeeds over the network with minimal latency requirements. The CVSS score of 7.5 (HIGH) reflects these low barriers to exploitation. However, the attack causes only denial of service, not data breach or system compromise. Weaponization requires only the ability to construct malformed IKEv2 frames, a skill well within the reach of determined threat actors. No known in-the-wild exploitation has been confirmed to date (KEV status: not listed), but the low complexity and immediate impact make proactive patching critical.
Remediation
Patch Libreswan to a version that contains the off-by-one fix in reassemble_v2_incoming_fragments(). Consult the official Libreswan security advisory for the specific patched version applicable to your release series. As a temporary mitigation, you may disable IKEv2 fragmentation by setting fragmentation=no in your Libreswan configuration, though this may reduce interoperability with peers that require fragmentation support. Restart the pluto daemon after configuration changes. If patching is not immediately feasible, consider restricting network access to IKEv2 ports (UDP 500, 4500) to trusted peer IP ranges using firewall rules.
Patch guidance
Contact Libreswan or check the official security advisories for the patched version applicable to your installation. Patches will be released for currently supported Libreswan branches; verify your version is still within the support lifecycle before assuming a patch is available. After applying the patch, perform a controlled daemon restart and verify IKEv2 tunnel establishment with trusted peers. If you operate a redundant VPN infrastructure, stagger patching across nodes to maintain availability. Test fragmentation=no configuration in a non-production environment first if you choose mitigation over patching.
Detection guidance
Monitor pluto daemon logs (typically in /var/log/pluto or journalctl) for repeated crash and restart cycles coinciding with specific source IPs. IKEv2-aware network sensors may observe malformed fragment payloads in IKEv2 Initial Exchange or subsequent messages. Unusual spikes in IKEv2 messages to your VPN endpoints followed by daemon restarts warrant investigation. Implement alerting on pluto daemon restarts; a high frequency of restarts (multiple per minute) is a strong indicator of active exploitation. Packet capture on port 500/4500 during an incident can reveal the malformed packet structure, though the off-by-one nature means the payload count will marginally exceed the valid range rather than being obviously corrupt.
Why prioritize this
Despite not being on the Known Exploited Vulnerabilities (KEV) list, this vulnerability merits urgent attention because: (1) exploit complexity is very low—any network-positioned attacker can trigger it; (2) impact is service-critical for VPN operations; (3) the vulnerability affects the default configuration (fragmentation enabled), requiring no unusual setup to be vulnerable; (4) no code execution or data exposure is possible, allowing faster patch deployment windows without a separate risk of lateral movement; (5) organizations that patch this issue will eliminate a clear and present DoS vector. Prioritize this as a HIGH-severity issue for VPN infrastructure but recognize that patching is lower-risk than higher-severity code execution flaws.
Risk score, explained
The CVSS 7.5 score reflects: Network-accessible attack vector (AV:N), low attack complexity (AC:L), no privilege or user interaction required (PR:N, UI:N), scope unchanged (S:U), no confidentiality or integrity impact (C:N, I:N), and high availability impact (A:H). The score appropriately captures the ease of exploitation and the real-world harm to service continuity, while the absence of CIA impact prevents a CRITICAL rating. For risk prioritization, also factor in: whether your Libreswan instance is internet-facing, the criticality of the VPN tunnels it supports, and your organization's tolerance for brief connectivity disruptions.
Frequently asked questions
Does this vulnerability allow an attacker to access my VPN traffic or steal credentials?
No. The vulnerability causes only a denial of service by crashing the pluto daemon. There is no path to remote code execution, data exfiltration, or authentication bypass. Once the daemon restarts, normal VPN operations resume—no persistent compromise occurs.
What if we've already set fragmentation=no in our Libreswan config?
You are not vulnerable to this specific issue. The off-by-one error only occurs when the fragmentation reassembly code path is active. Verify your configuration contains 'fragmentation=no' in the relevant connection blocks and test to confirm IKEv2 negotiation still succeeds with your peers. Note that some older or strict implementations may require fragmentation support, so test thoroughly before relying on this mitigation alone.
How can we tell if someone has already exploited this against us?
Check your pluto daemon logs and syslog for multiple restart events within a short timeframe, especially if correlated with specific source IPs attempting IKEv2 negotiation. Packet captures of traffic to UDP 500/4500 during the time window can show repeated malformed IKEv2 frames from the attacker. However, the earliest and best defense is to patch to prevent future exploitation.
Does IKEv1 need to be patched too?
No. This vulnerability is specific to the IKEv2 reassemble_v2_incoming_fragments() function. IKEv1 uses a different code path and is not affected. If you are still running IKEv1, you can safely transition to patched IKEv2 builds without concern about this particular flaw.
This analysis is based on the vulnerability description and CVSS vector provided as of the publication date. Specific patch version numbers, vendor timelines, and affected product lists must be verified against official Libreswan security advisories and your organization's deployment. No exploit code or detailed technical steps for reproduction are provided. This information is intended to support security decision-making and should be reviewed alongside your organization's risk management framework and patch management policies. Always test patches in a non-production environment before deploying to critical infrastructure. Source: NVD (public-domain), retrieved 2026-08-11. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-50721HIGHLibreswan IKEv1 RSA Signature Verification Flaw – Forgery & DoS
- CVE-2026-50722HIGHLibreswan IKEv2 Authentication Forgery and Denial-of-Service Vulnerability
- CVE-2026-10651HIGHZephyr Bluetooth SDP Parser Buffer Over-Read Vulnerability
- CVE-2026-37220HIGHFlexRIC v2.0.0 Denial of Service via SCTP Assertion Failure
- CVE-2026-37221HIGHFlexRIC v2.0.0 Unauthenticated Denial-of-Service via RIC Message Crash
- CVE-2026-37222HIGHFlexRIC E2AP Denial-of-Service Vulnerability – Analysis & Remediation
- CVE-2026-37223HIGHFlexRIC E2AP Dispatcher Assertion DoS – High-Severity O-RAN Vulnerability
- CVE-2026-37224HIGHFlexRIC v2.0.0 Denial of Service Vulnerability (CVE-2026-37224) — E2_SETUP_REQUEST Crash