Skip to main content
Vulnerability Database/CVE-2026-14957

CVE-2026-14957: Libreswan FIPS Mode DOS Vulnerability

CVE-2026-14957 is a denial of service flaw in Libreswan FIPS mode caused by malformed X.509 certificates that crash the pluto daemon. This post covers the technical details, affected configurations, and mitigation steps.

Published:

CVE-2026-14957 Overview

CVE-2026-14957 is a denial-of-service vulnerability in Libreswan, an open-source IPsec/IKE implementation. The flaw resides in the add_decoded_cert() function, which asserts that CERT_ExtractPublicKey() returns a non-NULL value. When Libreswan runs in FIPS mode, a remote attacker can send a malformed X.509 certificate in a CERT payload to trigger the assertion, aborting the pluto daemon. Repeated exploitation produces sustained denial of service. Both IKEv1 and IKEv2 are affected. The CERT payload is processed before peer authentication, so no credentials are required.

Critical Impact

Unauthenticated remote attackers can crash the pluto daemon repeatedly, disrupting IPsec VPN availability on systems running Libreswan and the OS in FIPS mode with at least one CA certificate loaded.

Affected Products

  • Libreswan (versions running in FIPS mode with CA certificates loaded in the NSS database)
  • Deployments processing IKEv1 CERT payloads
  • Deployments processing IKEv2 CERT payloads

Discovery Timeline

  • 2026-09-02 - CVE-2026-14957 published to NVD
  • 2026-09-02 - Last updated in NVD database

Technical Details for CVE-2026-14957

Vulnerability Analysis

The vulnerability is an unchecked return value flaw ([CWE-252]) in Libreswan's certificate processing path. The add_decoded_cert() function invokes CERT_ExtractPublicKey() and passes the result to an assertion that expects a non-NULL pointer. Under FIPS mode, CERT_ExtractPublicKey() can legitimately return NULL when public key extraction fails, such as when an RSA exponent is set to 0. The failed assertion aborts the pluto IKE daemon.

Because the IKE CERT payload is parsed and decoded before peer authentication occurs, an attacker does not need valid credentials or a prior security association. Any host reachable on the IKE port (UDP 500 or 4500) can deliver the malformed certificate. The daemon restarts after each abort, but repeated malformed CERT payloads produce a persistent denial-of-service condition against IPsec VPN endpoints.

No memory corruption occurs and no remote code execution is possible. The impact is limited to availability.

Root Cause

The root cause is a missing NULL check on the return value of CERT_ExtractPublicKey(). The assertion assumed the extraction routine always succeeds when a certificate is decoded, but FIPS-mode NSS enforces stricter key validation and returns NULL for invalid keys such as those with an RSA exponent of 0. The assertion converts an error condition into an abort.

Attack Vector

An unauthenticated remote attacker sends an IKE message containing a CERT payload with a crafted X.509 certificate. The certificate contains an invalid RSA public key, for example one with an exponent of 0. When Libreswan decodes the certificate and attempts to extract the public key, NSS returns NULL, the assertion fires, and pluto aborts. Configurations using only PreSharedKey (PSK) authentication with no CA certificates loaded in the NSS database are not vulnerable. See the Libreswan CVE-2026-14957 Advisory for full technical details.

Detection Methods for CVE-2026-14957

Indicators of Compromise

  • Repeated pluto daemon crashes or restart events in system logs, particularly assertion failures inside add_decoded_cert()
  • IKE CERT payloads arriving from untrusted or unexpected source addresses on UDP 500 or 4500
  • Systemd or init logs showing rapid service respawn of the Libreswan pluto process

Detection Strategies

  • Monitor pluto process exit codes and correlate abort signals with inbound IKE traffic bursts
  • Inspect IKE traffic for CERT payloads containing X.509 certificates with anomalous RSA public keys, including zero exponents
  • Alert on Libreswan log entries referencing CERT_ExtractPublicKey failures or assertion aborts

Monitoring Recommendations

  • Track availability metrics for IPsec tunnel establishment and IKE responder uptime
  • Capture packet traces on IKE ports during suspected DoS events for offline certificate analysis
  • Aggregate pluto daemon logs into a centralized SIEM to identify repeated crash patterns across VPN concentrators

How to Mitigate CVE-2026-14957

Immediate Actions Required

  • Apply the Libreswan security update referenced in the vendor advisory as soon as it is available for your distribution
  • Restrict inbound IKE traffic (UDP 500 and 4500) to known peer IP addresses using host or network firewalls
  • Review whether FIPS mode is required; if not, evaluate disabling it as a temporary measure while patching

Patch Information

Refer to the Libreswan CVE-2026-14957 Advisory and the detailed advisory text for fixed versions and distribution-specific patches. The fix adds a NULL check on the return value of CERT_ExtractPublicKey() so that malformed certificates are rejected instead of triggering an assertion.

Workarounds

  • Switch to PreSharedKey (PSK) authentication and remove all CA certificates from the NSS database if operational requirements permit, since PSK-only deployments without loaded CA certificates are not vulnerable
  • Filter IKE traffic at perimeter firewalls to allow only authorized VPN peers, reducing exposure of the pluto daemon
  • Deploy service watchdogs with rate limits on restart to detect and alert on repeated pluto crashes

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.