Affects Version/s: proton-0.9, proton-0.9.1, proton-0.10, proton-0.11.0, proton-0.11.1, proton-0.12.0, proton-0.12.1, proton-0.12.2, proton-0.13.0, proton-0.13.1, proton-0.14.0, proton-0.15.0, proton-0.16.0, proton-c-0.17.0, proton-c-0.18.0, proton-c-0.18.1, proton-c-0.19.0, proton-c-0.20.0, proton-c-0.21.0, proton-c-0.22.0, proton-c-0.23.0, proton-c-0.24.0, proton-c-0.25.0, proton-c-0.26.0, proton-c-0.27.0
Fix Version/s: proton-c-0.27.1
The TLS support in Apache Qpid Proton 0.9 - 0.27.0 can under some
circumstances connect as a client to a TLS server that offers anonymous
ciphers irrespective of whether the client was configured to verify the
server's certificate or certificate against the hostname used to connect.
This means that an undetected man in the middle attack could be
constructed if an attacker can arrange to intercept TLS traffic.
Versions 0.9 - 0.27.0 are affected when using OpenSSL prior to 1.1.0. This
includes the Qpid Proton C library, and all language binding libraries using
it. Installations using the native Windows Schannel TLS implementation or
using OpenSSL 1.1.0 or later are not affected.
Note that this attack will not work if client certificate authentication is
in use as anonymous ciphers cannot be used in this case.
Anyone using an affected version with OpenSSL prior to 1.1.0 should upgrade
their installation to 0.27.1 or higher for fix to this vulnerability.
Original Jira details:
Title: [c] Example broker can silently use anonymous ciphers when misconfigured
Description: The example broker does not check the return value from pn_ssl_domain_set_credentials() and if given a bad certificate will allow anonymous ciphers without even displaying an error message.