Some SSL-Enabled connections fail to perform basic certificate checks
----
### Summary ###
In many places OpenStack components use Python 2.x HTTPSConnection to establish an SSL connection between endpoints. This does not provide many of the assurances one would expect when using SSL and leaves connections open to potential man-in-the-middle attacks
### Discussion ###
A secure SSL session relies on validation of a X.509 certificate. Basic checks include:
* Is the certificate signed by a CA I recognize
* Has the CA revoked this certificate
* Does the common name on the certificate match the server I'm trying to reach
The HTTPSConnection class is used in a large number of locations and fails to check that certificates are signed by a valid authority. Without that check in place, the following checks (some highlighted above) are largely invalid.
The result is that an attacker who has access to the network traffic between two endpoints relying on HTTPSConnection can trivially create a certificate that will be accepted by HTTPSConnection as valid - allowing the attacker to intercept, read and modify traffic that should be encrypted by SSL.
Some SSL-Enabled connections fail to perform basic certificate checks
----
### Summary ###
In many places OpenStack components use Python 2.x HTTPSConnection to establish an SSL connection between endpoints. This does not provide many of the assurances one would expect when using SSL and leaves connections open to potential man-in-the-middle attacks
### Affected Services / Software ### middleware/ s3_token. py middleware/ ec2_token. py common/ bufferedhttp. py python- keystoneclient- master/ keystoneclient/ middleware/ auth_token. py
keystone/
keystone/
keystone/
vendor/
### Discussion ###
A secure SSL session relies on validation of a X.509 certificate. Basic checks include:
* Is the certificate signed by a CA I recognize
* Has the CA revoked this certificate
* Does the common name on the certificate match the server I'm trying to reach
The HTTPSConnection class is used in a large number of locations and fails to check that certificates are signed by a valid authority. Without that check in place, the following checks (some highlighted above) are largely invalid.
The result is that an attacker who has access to the network traffic between two endpoints relying on HTTPSConnection can trivially create a certificate that will be accepted by HTTPSConnection as valid - allowing the attacker to intercept, read and modify traffic that should be encrypted by SSL.
### Recommended Actions ### github. com/openstack/ python- keystoneclient/ commit/ 20e166fd8a943ee 3f91ba362a47e9c 14c7cc5f4c
Consider using an up to date version of the keystone client http://
### Contacts / References ### /bugs.launchpad .net/ossn/ +bug/1188189 /launchpad. net/~openstack- ossg
This OSSN : https:/
OpenStack Security ML : openstack-security at lists.openstack.org
OpenStack Security Group : https:/