FreeBSD VuXML: Documenting security issues in FreeBSD and the FreeBSD Ports Collection

openvpn -- illegal client float can break VPN session for other users

Affected packages
openvpn < 2.4.8_3
openvpn-mbedtls < 2.4.8_3
openvpn-devel < 202016

Details

VuXML ID 8604121c-7fc2-11ea-bcac-7781e90b0c8f
Discovery 2020-04-13
Entry 2020-04-16

Lev Stipakov and Gert Doering report:

There is a time frame between allocating peer-id and initializing data channel key (which is performed on receiving push request or on async push-reply) in which the existing peer-id float checks do not work right.

If a "rogue" data channel packet arrives during that time frame from another address and with same peer-id, this would cause client to float to that new address.

The net effect of this behaviour is that the VPN session for the "victim client" is broken. Since the "attacker client" does not have suitable keys, it can not inject or steal VPN traffic from the other session. The time window is small and it can not be used to attack a specific client's session, unless some other way is found to make it disconnect and reconnect first.

References

CVE Name CVE-2020-11810
URL https://community.openvpn.net/openvpn/ticket/1272
URL https://github.com/OpenVPN/openvpn/commit/f7b318f811bb43c0d3aa7f337ec6242ed2c33881
URL https://patchwork.openvpn.net/patch/1077/
URL https://sourceforge.net/p/openvpn/openvpn/ci/f7b318f811bb43c0d3aa7f337ec6242ed2c33881/
URL https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19720.html