Vercel Hack - April 2026 Security Incident

Overview

Full Attack Chain

Phase 1: Initial Compromise (Context.ai)

A Context.ai employee downloaded what they thought was a Roblox cheat script. It was actually Lumma Stealer — an infostealer malware that scrapes browser cookies, saved passwords, and OAuth tokens. This gave the attacker the Context.ai employee's Google Workspace session credentials.

Phase 2: OAuth Application Abuse

The attacker exploited Context.ai's Google Workspace OAuth application (Client ID: 110671459871-30f1spbu0hptbs60cb4vsmv79i7bbvqj.apps.googleusercontent.com). Because Context.ai's OAuth app had broad permissions granted by users who installed it, the attacker could use stolen tokens to access connected Google Workspace accounts — including Vercel employees.

Phase 3: Vercel Employee Compromise

A Vercel employee had the Context.ai browser extension installed and had authenticated using their corporate Google Workspace account. Through the compromised OAuth session, the attacker gained access to the Vercel employee's account — no phishing needed, no password to crack.

Phase 4: Internal Lateral Movement

Once inside via the employee account, the attacker: 1. Enumerated non-sensitive environment variables — stored unencrypted at rest (only "sensitive" flagged ones get full encryption) 2. Used those variables to discover and access further internal systems 3. Reached employee data (580 records: names, emails, account status, timestamps) 4. Accessed internal Enterprise dashboards

Phase 5: Data Exfiltration & Ransom

The attacker claimed to have: - API keys (including NPM tokens and GitHub tokens) - Source code - Database access - Internal deployment access - Linear project management data (shared as "proof")

Key Facts

Action Items

Sources