Vercel's April 23 Update Confirms a Pre-existing Compromise Separate from Context.ai—Lumma Stealer Suspected of Targeting Vercel Tokens Directly
Contents
Four days after the initial April 19 disclosure (Context.ai Breach Reached Vercel via an OAuth Chain — April 2026 Security Incident), Vercel updated its KB bulletin with a follow-up. The single new data point: Vercel identified “customer accounts with evidence of prior compromise that is independent of and predates this incident.” TechCrunch covered the same day in Vercel says some of its customers’ data was stolen prior to its recent hack.
The wording is brief, but the operational implication is not. It’s no longer just a Context.ai OAuth chain story. Infostealer malware directly targeting Vercel credentials has been running on a separate track, predating this incident.
What Changed Between April 19 and April 23
| Item | As of April 19 | As of April 23 |
|---|---|---|
| Compromised customer accounts | Subset via Context.ai | Above plus additional accounts notified |
| Pre-existing compromises | Not mentioned | independent of and predates this incident explicitly noted |
| Attack vectors | Context.ai OAuth chain | Above plus direct infostealer infection of developer endpoints |
| npm supply chain | Under review | Confirmed clean in collaboration with GitHub, Microsoft, npm, Socket |
“Independent of and predates” is Vercel’s own wording. The bulletin also explicitly states these compromises “do not appear to have originated on Vercel systems”—this is less about assigning liability and more about signaling that multiple vectors are in play.
Per Vercel CEO Guillermo Rauch’s comment to TechCrunch, attackers were “active beyond that startup’s compromise” and used “malware that compromises computers in search of valuable tokens like keys to Vercel accounts.”
In other words, even with the Context.ai OAuth path closed, VERCEL_TOKEN and API keys stolen off individual infected developer machines were being used in parallel.
Tracing Back to Lumma Stealer
Combining additional reporting from Trend Micro, Hacker News, and The Hacker News, the initial infection path at Context.ai becomes visible.
Around February 2026, a Context.ai employee hit Lumma Stealer through a search for Roblox cheats. Lumma Stealer is a typical infostealer that exfiltrates credentials, cookies, OAuth tokens, and clipboard contents from Chrome to a Telegram or C2 server. In this case, Google Workspace credentials plus Supabase, Datadog, and Authkit keys were confirmed taken.
From there, attackers pivoted to Context.ai’s OAuth app permissions, then leveraged the “allow all” grant on a Vercel employee’s Google Workspace account. That’s the confirmed line up to the Vercel side.
flowchart TD
A[Context.ai employee endpoint<br/>Lumma Stealer infection<br/>around Feb 2026] --> B[Google Workspace credentials<br/>Supabase/Datadog/Authkit keys exfiltrated]
B --> C[Context.ai OAuth app takeover]
C --> D[Vercel employee Google Workspace<br/>account takeover via 'allow all']
D --> E[Lateral movement into Vercel internal systems]
E --> F[Enumeration and decryption of<br/>non-sensitive environment variables]
X[Separate infection vector<br/>infostealer directly targeting<br/>Vercel tokens] --> Y[Pre-compromised customer accounts<br/>detected April 23]
Y --> Z[Independent of the Context.ai incident]
The right branch (X→Y→Z) is what the April 23 update newly confirmed, and timeline-wise it may well have been active before the Context.ai path.
The ShinyHunters BreachForums Listing
Per OX Security’s analysis, in mid-April an actor calling themselves ShinyHunters listed Vercel-related data on BreachForums for $2M. The listing contents:
- Database access keys
- Portions of source code
- Employee account information
- Collection of API keys
Authenticity is unconfirmed and Vercel has not published counts or content details.
Still, the existence of the listing alone is enough reason to rotate VERCEL_TOKEN, GitHub tokens, and npm accounts preemptively.
Where Infostealers Hunt for Keys
If infostealer activity is the root, it’s worth knowing how browsers and operating systems actually store credentials.
| Storage location | What infostealers grab | Mitigation |
|---|---|---|
| Chrome / Edge password store | Saved passwords, cookies, session tokens | Audit browser sync, re-login to Vercel/GitHub/npm as a habit |
CLI auth files like ~/.vercel/auth.json | VERCEL_TOKEN in plaintext | vercel logout → re-login to reissue |
| OS keychain (macOS Keychain, Windows Credential Manager) | Some infostealers support this | Tie to passphrase, shorten auto-lock |
| Discord / Telegram clients | Logged-in tokens | Enforce MFA, periodic sign-out |
Lumma Stealer has particularly aggressively targeted Chrome-family browser stores and OAuth cookies through 2024–2025, putting developer workstations first in line.
The Reality of the sensitive Flag
Vercel environment variables behave differently depending on whether the sensitive flag is set.
Unset values are stored as Plaintext or Encrypted and are readable via the dashboard or API. This is what the attacker accessed in this incident.
sensitive-marked values become unretrievable from both UI and API once saved, and are only injected at runtime during deployment.
That single flag shrinks the exposure surface by an order of magnitude, which is why Vercel scoped the April 19 announcement to “values not marked sensitive.”
Conversely, values without the sensitive flag should be treated as fully exposed, and the April 23 update—broadening the scope further—doesn’t change that calculus.
What to Do Today
In addition to the OAuth audit and sensitive rotation from the earlier article, add infostealer-focused items.
- Review developer endpoint AV/EDR logs filtered to April, especially events for Chrome password store access and clipboard monitoring
- Run
vercel logout→vercel loginacross the team to reissueVERCEL_TOKEN. Pay particular attention to endpoints with multiple~/.vercelconfig files lingering - Delete saved Vercel / GitHub / npm credentials from Chrome / Edge, and consider disabling “save login” browser features team-wide
- The Google Workspace OAuth app audit shouldn’t stop at Context.ai—extend it to every AI tool approved in the past 6 months. Given ShinyHunters’ activity, this isn’t a Context.ai-only story
- Inventory every environment variable without the
sensitiveflag. DB connection strings, payment keys, and third-party delivery keys are the top priority
Related Reading
- Initial disclosure: Context.ai Breach Reached Vercel via an OAuth Chain — April 2026 Security Incident
- Another third-party OAuth-adjacent case: Clinejection: how a GitHub issue title pushed an AI agent onto 4,000 developer machines