All vulnerabilities
CRITICALSecrets

SECRET-UBER-2016

Secrets · Cloud keys · Uber

Summary

In October 2016 attackers breached Uber and stole data on roughly 57 million riders and drivers, including about 600,000 driver's license numbers, an incident Uber concealed until publicly disclosing it on November 21, 2017. The attackers scanned GitHub and found AWS access credentials hardcoded in a private Uber GitHub repository, where engineers used personal accounts without enforced multi-factor authentication and reused passwords exposed in prior breaches. Using the plaintext AWS access key, the intruders authenticated to an Amazon S3 bucket Uber used for backups and downloaded the rider and driver datastore over roughly a month. Rather than report it, Uber paid the attackers $100,000 in Bitcoin disguised as a bug-bounty reward to stay silent. The concealment led to an FTC settlement requiring a 20-year privacy program, and in October 2022 former CSO Joseph Sullivan was convicted of obstruction and misprision of a felony.

How to avoid it in your code

  • Never hardcode AWS keys in code; load credentials from a secrets manager or IAM roles at runtime instead of any repository.
  • Add pre-commit secret scanning and enable GitHub push protection to block credential commits before they reach history.
  • Rotate and revoke any leaked AWS key immediately; deleting the commit is not enough since it persists in git history.
  • Scope IAM credentials to least privilege so a leaked key cannot reach backup S3 buckets or full datastores.
  • Enforce SSO and mandatory MFA on source-control accounts and forbid reusing passwords across services.

References

Related vulnerabilities

All Secrets →