ikev2: Initialize variable in case set_key() or allocate_bytes() fails
authorTobias Brunner <tobias@strongswan.org>
Mon, 19 Mar 2018 16:03:05 +0000 (17:03 +0100)
committerTobias Brunner <tobias@strongswan.org>
Thu, 24 May 2018 13:45:08 +0000 (15:45 +0200)
commit6d8a57342b604b4836816937e0cb659be4d0fec2
tree3f56a976a48535b0ffbab4b36825319c04486c1c
parent0d0c8f7d3e028ee960183ff88c00f4ffffb31445
ikev2: Initialize variable in case set_key() or allocate_bytes() fails

In case the PRF's set_key() or allocate_bytes() method failed, skeyseed
was not initialized and the chunk_clear() call later caused a crash.

This could have happened with OpenSSL in FIPS mode when MD5 was
negotiated (and test vectors were not checked, in which case the PRF
couldn't be instantiated as the test vectors would have failed).
MD5 is not included in the default proposal anymore since 5.6.1, so
with recent versions this could only happen with configs that are not
valid in FIPS mode anyway.

Fixes: CVE-2018-10811
src/libcharon/sa/ikev2/keymat_v2.c