Bio Basespace SDK 0.1.7 Ruby Gem exposes API Key via command line

11/15/2013
Larry W. Cashdollar, @_larry0

Download: http://rubygems.org/gems/bio-basespace-sdk

Description
"BaseSpace Ruby SDK is a Ruby based Software Development Kit to be used in the development of Apps and scripts for working with Illumina's BaseSpace cloud-computing solution for next-gen sequencing data analysis. The primary purpose of the SDK is to provide an easy-to-use Ruby environment enabling developers to authenticate a user, retrieve data, and upload data/results from their own analysis to BaseSpace."

Vulnerability: The API client code passes the API_KEY to a curl command. This exposes the api key to the shell and process table. Another user on the system could snag the api key by just monitoring the process table.

In the following code snippet:

bio-basespace-sdk-0.1.7/lib/basespace/api/api_client.rb # +headers+:: Header of the PUT call. +trans_file+:: Path to the file that should be transferred. def put_call(resource_path, post_data, headers, trans_file) return %x(curl -H "x-access-token:{@api_key}" -H "Content-MD5:{headers['Content-MD5'].strip}" -T "{trans_file}" -X PUT #{resource_path}) end

# Deserialize a boolean value to a Ruby object.

Vendor: Notified 11/15/2013

Advisory: http://www.vapid.dhs.org/advisories/bio-basespace-sdk.html