[Openswan dev] potential authentication bug in strongSwan/Openswan
Thomas Walpuski
thomas at unproved.org
Wed Jun 16 15:36:44 CEST 2004
It looks like there is an authentication bug in strongSwan/Openswan.
(I've not verified the issue on a running system, yet.)
If an attacker sends a his (fake) CA certificate with issuer A and
subject B and user certificate with issuer B and subject B signed by his
CA wrapped in PKCS#7 as certificate payload the following happens:
0 ...
1 decode_cert() lets parse_pkcs7_cert() parse the certificate payload
and passes the result to store_x509certs().
2.1 store_x509certs() walks through the CA certificate(s), ensures
that it is no root CA (subject /= issuer) and enters it to the CA
certificate storage. => The attacker's CA certificate makes it way
into the CA certificate storage.
2.2 store_x509certs() walks through all certificates and adds their
public key and identity to the key storage _if_ they can be
verified:
verify_x509cert() checks whether the user certificate is in its
validity period, gets the issuer's certificate and checks the
user certificate's signature. => The attacker gets his user
certificate verified, because he already got his CA certificate
in.
If the user certificates issuer and subject are the same,
verify_x509cert() returns TRUE indicating successful certificate
verification, otherwise the issuer certificate is checked. =>
In the attacker's user certificate subject = issuer, ...
With a carefully crafted certificate payload anyone can "authenticate"
against strongSwan/Openswan.
What do you think? Have I missed something substantial?
BTW: Sorry for posting you mailing lists. I didn't found any security
contact information.
Thomas Walpuski
More information about the Dev
mailing list