[Swan] [Swan-announce] libreswan 3.15 released to resolve CVE-2015-3240: bad DH g^x by remote peer causes IKE daemon restart

The Libreswan Project team at libreswan.org
Tue Aug 25 04:25:47 UTC 2015

Hash: SHA512

The Libreswan Project has released libreswan-3.15

This is a security release to address CVE-2015-3240

(note this CVE number looks very similar to our previous one, CVE-2015-3204)

The Libreswan Team discovered a bug in the DH handling of libreswan and
its predecessor openswan. When the pluto IKE daemon receives a g^x = 0,
it would hit a passert() and restart the pluto IKE daemon.

Additionally, Labeled IPsec was broken in 3.14 and fixed with this
release. KLIPS support for 4.x kernels has been added. NETKEY
type=passthrough priority handling is fixed.

You can download libreswan via https at:


The full changelog is available at:

A patch of just the CVE-2015-3240 issue is available at:

Please report bugs either via one of the mailinglists or at our bug tracker:


Binary packages for RHEL/EPEL and Debian/Ubuntu can be found at
(you can also take the source and issue "make deb", or use the
  spec files in the packaging/ directory)

Binary packages for Fedora can be found in the respective fedora

See also https://libreswan.org/

v3.15 (August 24, 2015)
* SECURITY: CVE-2015-3240 IKE daemon restart when receiving a bad DH gx [Hugh]
* KLIPS: fix use of *iovec() functions for linux 4.x kernels [Greg Ungerer]
* IKEv1: Remove old IPsec SA's when newest IPsec SA is removed [CHEN, JIANFU]
* IKEv1: Fix Labeled IPsec SECCTX parsing - bug introduced in 3.14 [Matt]
* NETKEY: workaround for NLMSG_OK() macro causing build failure on i686 [Hugh]
* NETKEY: Fix IPsec SA priority on type=passthrough conns [Antony]
* NETKEY: Fix nflog= on type=passthrough conns [Paul]
* pluto: Use PORT_ErrorToString() to translate NSS errors [Matt]
* pluto/whack: add --impair-send-zero-gx to test CVE-2015-3240 [Paul]
* ipsec: checknss/initnss must both convert old database if it exists [Tuomo]
* packaging: debian fixes for userland package [Antony]

CVE-2015-3240 libreswan/openswan: denial of service via IKE daemon restart
               when receiving a bad DH gx by peer

URL: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=2015-3240

This alert (and any possible updates) is available at the following URLs:

The Libreswan Project discovered that receiving a g^x value of zero from
an unauthenticated remote peer was not handled properly by the pluto IKE
daemon, causing the pluto IKE daemon to restart. The vulnerability is
present in libreswan and its predecessor openswan.

Vulnerable versions: libreswan up to version 3.14
                      openswan (if compiled with NSS) up to version 2.6.44
Not vulnerable     : libreswan 3.15 and newer

If you cannot upgrade to libreswan 3.15, please see the above link for a
patch for this issue.

Vulnerability information
- -------------------------

The NSS library returns NULL when DiffieHellman exponentiation fails. The
IKE daemon pluto verifies that the result is not NULL and triggers a
passert() when it is NULL. This causes the IKE daemon pluto to restart.

- ------------

This denial of service can be launched by anyone using a single IKE packet.
No authentication credentials are required. No remote code execution is
possible through this vulnerability. Libreswan automatically restarts when
it crashes.

- ----------

There is no workaround. Either upgrade or use the supplied patch in the
above listed resource URL.

- -------

This vulnerability was found by The Libreswan Team.

About libreswan (https://libreswan.org/)
- ----------------------------------------

Libreswan is a free implementation of the Internet Protocol Security
(IPsec) suite and Internet Key Exchange (IKE) protocols. It is a
descendant (fork) of openswan 2.6.38.

IPsec uses strong cryptography to provide both authentication and
encryption services. These services allow you to build secure tunnels
through untrusted networks. Everything passing through the untrusted
network is encrypted by the IPsec gateway machine, and decrypted by
the gateway at the other end of the tunnel. The resulting tunnel is a
virtual private network (VPN).
Version: GnuPG v1

Swan-announce mailing list
Swan-announce at lists.libreswan.org

More information about the Swan mailing list