Voxel Blog: Uptime
kbeevers's picture

Sep-29-2009

hAPI vulnerability discovered, fixed

Security researchers recently uncovered an attack on web APIs that:

  1. Compute a "string to sign" containing a shared secret followed by a concatenation of parameter names/values.
  2. Compute a "signature" based on the string to sign using the MD5 hashing algorithm.

This authentication scheme is quite popular, in part due to its use by Flickr's API, one of the first and most popular web APIs.  We use a related authentication scheme for our Hosting API, hAPI. The security researchers contacted us with the details of their attack at 11:30 EDT on Friday, September 25.  The attack exploits technical properties of the MD5 hashing algorithm to append additional parameters to certain API calls, given the length of the API secret and the signature from a previous call. Their paper, which focuses mainly on Flickr's API but makes brief mention of Voxel, and provides complete technical details of the potential vulnerability, is available online.

Voxel developers immediately evaluated the severity of the potential attack, and determined that hAPI may be vulnerable.  Adjustments to allay the vulnerability were made to hAPI's authentication backend, and deployed immediately. hAPI is no longer vulnerable to an MD5 length-extension attack as described by the authors.  Additionally, upon reviewing historical data, we have no indication that this attack has ever been attempted against hAPI. Voxel welcomes feedback from security researchers and the opportunity it gives us to improve the quality and robustness of our products.  Thanks and congratulations to Thai Duong and Juliano Rizzo for their work on this matter, and for their professionalism in disclosing the vulnerability to us.  Voxel has a long history of working with the open source and Internet communities at large, and it continues to be our pleasure to provide best in class products and services to our customers while ensuring their businesses are uninterrupted by security concerns.