CVE-2014-3566 – POODLE
What is POODLE
The POODLE (Padding Oracle On Downgraded Legacy Encryption) vulnerability allows an attacker to obtain data transferred with the SSL 3.0 protocol. An attacker acting as a man in the middle can downgrade a TLS connection to SSL 3.0 and then use a padding-oracle attack to access sensitive information such as cookies. Since stealing a user’s cookies will allow an attacker to login as that user, they are the most likely target of a POODLE attack.
Prevention
This vulnerability can be fixed either on the server or in the client.
Site owners can protect their users against POODLE attacks by disabling TLS fallback or SSL 3.0 (Note that disabling SSL 3.0 will break the site for IE6 users):
- For Apache:
SSLProtocol all -SSLv2 -SSLv3
- For Nginx:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Browsers are rolling out fixes but for users the quickest fix is to disable SSL 3.0:
- In Firefox this is done by going to about:config and setting
security.tls.version.min to 1
- Chrome users have to use the command line flag
--ssl-version-min=tls1
Going deeper
This attack is possible because SSL pads requests to fill the last block before encryption. SSL 3.0 only requires the last byte to be checked by the server; it must have a value equal to the number of bytes that have been used for padding. The values of the other padding bytes are not validated, this allows an attacker to move the block they want to decrypt to the the last block and try all 256 possible values until the server accepts the request, allowing them to decode one byte of the cookie. An attacker in a privileged network position (or sharing public WiFi) just needs to downgrade the SSL connection from TLS to SSL 3.0 and then use JavaScript to quickly obtain a cookie one byte at a time.
For more technical information I would recommend this article by ImperialViolet.
Feature image made by Koji Ishii licensed CC BY 2.0