|
The KAME IKE daemon Racoon and its Linux 2.6 port in ipsec-tools fail to verify the RSA signature during phase one of an IPSec connection, using either main or aggressive mode. The X.509 certificate of the client is verified, but the certificate is not used to verify the client's signature. This could allow remote attackers to establish unauthorized IP connections or conduct man-in-the-middle attacks, provided that they possess a valid, trusted X.509 certificate. As you can see, the vulnerable code in the eay_rsa_verify() function of crypto_openssl.c reads as follows:
evp = d2i_PUBKEY(NULL, &bp, pubkey->l);
if (evp == NULL)
return 0;
d2i_PUBKEY always returns NULL, and so the function always exits with the returncode 0 (success). There is no signature verification.
|