Red Hat Bugzilla – Bug 960192
CVE-2013-2061 openvpn: use of non-constant-time memcmp in HMAC comparison in openvpn_decrypt
Last modified: 2013-06-04 13:46:26 EDT
According to the upstream security report  the following flaw was found in OpenVPN 2.3.0 and earlier:
OpenVPN 2.3.0 and earlier running in UDP mode are subject to chosen ciphertext injection due to a non-constant-time HMAC comparison function. Plaintext recovery may be possible using a padding oracle attack on the CBC mode cipher implementation of the crypto library, optimistically at a rate of about one character per 3 hours. PolarSSL seems vulnerable to such an attack; the vulnerability of OpenSSL has not been verified or tested.
OpenVPN servers are typically configured to silently drop packets with the wrong HMAC. For this reason measuring the processing time of the packets is not trivial without a MITM position. In practice, the attack likely needs some target-specific information to be effective.
The severity of this vulnerability can be considered low. Only if OpenVPN is configured to use a null-cipher, arbitrary plain-text can be injected which can completely open up this attack vector.
A fix has been committed to git ; this is corrected in OpenVPN 2.3.1 and later.
Note that OpenVPN is not built with PolarSSL support, so while it's currently unknown whether or not this affects OpenVPN built with OpenSSL, it's probably prudent to apply the patch, despite this being a low-impact flaw.
Pushing 2.3.1 to f18 and f17 as we speak.
Nice, thank you Jon. I will still file a tracking bug that you can reference as one is required for EPEL anyways.
Created openvpn tracking bugs for this issue
Affects: epel-all [bug 960195]
Affects: fedora-all [bug 960196]
For more information about this issue, please read this announcement:
This is really a low security issue, and it seems most likely to be vulnerable only if --cipher none is used in the configuration.
Right, that's why it's rated low impact here as well. It's also unknown whether or not this affects openssl (which we use) or just the use of polarssl (which we don't use). But, regardless, it's still a flaw and the patch is pretty straightforward, so there's no real reason _not_ to fix it.
The CVE identifier of CVE-2013-2061 has been assigned to this issue: