[Full-disclosure] CVE-2009-0790: ISAKMP DPD Remote Vulnerability with Openswan & Strongswan IPsec
paul at xelerance.com
Mon Mar 30 17:17:24 BST 2009
-----BEGIN PGP SIGNED MESSAGE-----
Openswan & Strongswan Security Notification March 30, 2009
Remote DoS Vulnerability in Openswan & Strongswan IPsec
A vulnerability in the Dead Peer Detection (RFC-3706) code was found by
Gerd v. Egidy <gerd.von.egidy at intra2net.com> of Intra2net AG affecting
all Openswan and all Strongswan releases.
A malicious (or expired ISAKMP) R_U_THERE or R_U_THERE_ACK Dead Peer
Detection packet can cause the pluto IKE daemon to crash and restart. No
authentication or encryption is required to trigger this bug. One spoofed
UDP packet can cause the pluto IKE daemon to restart and be unresponsive
for a few seconds while restarting.
A patch was created by Paul Wouters <paul at xelerance.com> for Openswan and
This bug affects the following software releases:
Openswan-2.6.20 and earlier
Strongswan-4.2.13 and earlier
Maintenance mode branches:
Openswan-2.4.13 and earlier
Strongswan-2.8.8 and earlier
End of Life branches:
Openswan-2.0.x - 2.3.1
Everyone is strongly encouraged to upgrade to these minimum versions:
If you cannot upgrade to a new version, please apply the appropriate
patch as listed at http://www.openswan.org/CVE-2009-0790/
Dead Peer Detection is an IPsec IKE Notification message. It uses
an ICOOKIE/RCOOKIE mechanism to match an incoming packet to a know
Security Association (ISAKMP). Unlike most Notification messages, DPD
notifications have no phase2 state association. Incorrect handling of
this exception can cause a NULL pointer dereference on a non-existing
state object 'st'. This bug is triggered in the case where one end has
expired an ISAKMP state, but the other end still uses the old state
to send a DPD Notification.
Since this state-lookup is performed before any encryption or
decryption takes place, as we need to find the proper ISAKMP to locate
the cryptogrpahic key material used for decryption, this bug can be
triggered without going through a phase1 (ISAKMP) negotiation.
When such a packet is received, the pluto daemon crashes and restarts.
Locations for downloading patches and source code:
Paul Wouters <paul at xelerance.com>
GPG key: 0xB5CC27E1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
-----END PGP SIGNATURE-----
Full-Disclosure is hosted and sponsored by Secunia.