#PeerJacking - SSL Ecosystem Attacks Against Online Commerce

Responsibly Disclosed to Canadian Cyber Incident Response Centre [CCIRC], Office of the Privacy Commissioner of Canada and Canadian Bankers Association, July 15, 2011. Informs government Public Safety Notice IN11-003 http://www.publicsafety.gc.ca/prg/em/ccirc/2011/in11-003-eng.aspx released December 20, 2011. Due to the scope of the issue, vendor notification was performed by CCIRC.

Users of the following libraries should evaluate their software for exposure to IN11-003 (#PeerJacking). Many of these libraries are now patched by the vendors but affected versions will need to be deployed on end-user web servers.

Moneris eSelectPlus 2.03 PHP API
PayPal SDK Soap (MD5: ae8b2b7775e57f305ded00cae27aea10)
PayPal SDK NVP (MD5: 5a5d6696434536e8891ee70d33b551bd)
PayPal WPS ToolKit (MD5: a9e7c4b8055ac07bb3e048eecc3edb14)
Authorize.net Library (* Defaults to secure, but affected by configuration instructions. anet_php_sdk-1.1.6)
Google Checkout Sample Code (V 1.3.1 for PHP) (Article Updated April 2, Patched in V.1.3.2 Download Here)
OSCommerce 2.3.1
CiviCRM 4.0.5 (Update Apr 2: Still vulnerable as of V 4.1.1)
Magento 1.5 (Update Apr 2: Vulnerabilities still exist as of version 1.6.2)
UberCart for Drupal (uberdrupal-6.x-1.0-alpha8-core)
Pear Services Twitter. (0.6.3)
Themattharris Oauth (< 0.61) (*Twitter indexed library https://dev.twitter.com/docs/twitter-libraries#php )
TwitterOAuth (File date: May 18, 2011, *Twitter indexed library https://dev.twitter.com/docs/twitter-libraries#php)

Additionally the following GitHub Search may help identify affected libraries. Here. Instances of CURLOPT_SSL_VERIFYPEER set to false or 0, and instances of CURLOPT_SSL_VERIFYHOST set to 0, 1, or true rather than the value 2, may indicate exposure. PHP ships with secure defaults for these values and thus this is not a vulnerability in PHP or CURL, but entirely contained within library code.

Libraries where these default values are overridden and not correctly set will be vulnerable to man-in-the-middle interception and modification of data in transit by an attacker using a self-signed SSL certificate and off-the-shelf software. Fixes to these libraries usually cannot be deployed centrally by the vendors, and typically must be upgraded individually on all deployed client systems.

Please contact the Canadian Cyber Incident Response Centre for further mitigation information and advice. Thanks to Tamir Israel (CIPPIC) and Christopher Parsons for their assistance in responsibly disclosing this vulnerability.