All vulnerabilities
HIGHOpSeccurated

OPSEC-UBER-2022

Identity · Uber

Summary

In September 2022, an 18-year-old broke into Uber and posted screenshots of its internal systems to prove it, an embarrassingly total compromise that started with a tactic anyone can fall for: pestering. The attacker, part of the Lapsus$ group, had a contractor's stolen password, and to get past multi-factor authentication, simply spammed the contractor with login-approval prompts until, worn down and then nudged over WhatsApp by the attacker posing as IT, they tapped "approve." Once inside, the attacker found a script with a hardcoded admin password that unlocked Uber's most powerful systems at once. It is the textbook lesson in MFA fatigue, and in how one hardcoded secret turns a foothold into a takeover.

How it happened

The attacker started with an Uber contractor's corporate password, bought on the dark web after malware on the contractor's personal device had harvested it. The password alone was not enough, because the account had multi-factor authentication. So they used MFA fatigue: flooding the contractor with repeated Duo 2FA push prompts for over an hour, then socially engineering them over WhatsApp while posing as Uber IT, until the worn-down contractor approved one of the prompts to make them stop.

That single approval put the attacker on Uber's VPN. From there they scanned an internal network share and found a PowerShell script containing hardcoded admin credentials for Uber's privileged-access manager, the very system that is supposed to vault all the other secrets. That one hardcoded password was a skeleton key: it gave them access to AWS, Google Cloud, Google Workspace, Slack, the SentinelOne security console, internal dashboards, the VMware vSphere estate, and the HackerOne bug-bounty admin, all at once.

The damage

The attacker downloaded some internal Slack messages and data from a finance invoicing tool, and posted screenshots widely to prove the scope of the access, even reconfiguring Uber's OpenDNS to show employees a graphic image and announcing the breach in Uber's own Slack ("I announce I am a hacker and Uber has suffered a data breach"), which staff at first took for a joke. Uber stated that its production systems, user accounts, and sensitive user data (trip history, card and bank numbers) were not reached, and that the bug-bounty reports the attacker could read were remediated. The intruder, who used the handle "Tea Pot," was later identified as Lapsus$ member Arion Kurtaj, who was also behind the Revolut and Rockstar Games (GTA VI) intrusions. Kurtaj, who has severe autism, was found unfit to stand trial; a jury found he had committed the acts, and in December 2023 he was sentenced to indefinite detention in a secure hospital.

Why Uber 2022 still matters

It is the definitive MFA fatigue case, paired with a hardcoded-secret disaster. Push-based MFA can be worn down by sheer persistence and a friendly-sounding "IT" message, which is why phishing-resistant FIDO2 or passkey MFA, and at minimum number-matching and a cap on repeated prompts, matter so much. And one hardcoded credential in a script turned a single VPN foothold into control of every cloud and SaaS admin plane, which is why secrets belong in a vault with short-lived, least-privilege, audited checkout, and why the privileged-access manager itself must be the most protected system you run. The cultural fix is just as important: "deny and report" should be the reflex, because real IT never asks you to approve an unexpected prompt. It used the same social-engineering-of-a-human pattern as the MGM and Caesars attack.

How to fix it

  • Immediately reset passwords and revoke active sessions and tokens for the compromised identity and every account it could reach.
  • Rotate every secret the privileged-access/PAM account exposed (cloud keys, service-account credentials, API tokens, signing keys) and treat them all as burned.
  • Pull hardcoded credentials out of every script, repository, and file share, and move them into a vault with short-lived, least-privilege, audited checkout.
  • Rebuild the blast radius from SSO, PAM-checkout, and cloud audit logs, and rotate the bug-bounty-platform and EDR-console access the attacker touched.
  • Re-enrol affected users on phishing-resistant MFA and add monitoring for anomalous logins and secret access before bringing accounts back online.

How to avoid it

  • Use phishing-resistant, hardware-backed MFA (FIDO2/WebAuthn passkeys) for staff and contractors; enable number-matching and cap repeated push prompts so MFA fatigue and push-bombing cannot grind a user into approving.
  • Never store credentials in scripts, repositories, or shares: one hardcoded PAM admin credential turned a single VPN foothold into full control of AWS, GCP, Google Workspace, Slack, and HackerOne.
  • Protect the privileged-access manager itself with its own MFA, just-in-time elevation, least privilege, and alerting on bulk or unusual secret checkout, so it is not a single point of total compromise.
  • Treat contractors and third parties as high-risk identities (device-posture and conditional-access checks, tight scoping, network segmentation), because their personal-device malware becomes your dark-web credential.
  • Make "deny and report" the reflex: real IT never asks you to approve an unexpected MFA prompt, and any out-of-band approval request over WhatsApp, SMS, or a call is the attack, not the helpdesk.
  • Alert on impossible-travel and new-device SSO logins, and on a single identity suddenly reaching many cloud and SaaS admin planes at once.

References

Related vulnerabilities

All OpSec →