Okta found 1,843 unexpired AI session tokens sitting in a single infostealer dump
Okta analysed a 7GB infostealer dump from 5,871 machines and found 44,791 JWTs, 1,843 of them still unexpired on release day, plus 24 live API keys for Gemini, OpenAI, Groq and OpenRouter. Replaying them skips MFA entirely.
Okta analysed a 7GB infostealer dump posted to Telegram on August 2, 2026, containing data from 5,871 infected machines across 162 countries. It held 44,791 unique JSON Web Tokens, of which 1,843 were still unexpired on the day of release and 555 were tied to AI services, plus 2,937 encrypted JWE structures largely from OpenAI's NextAuth.js implementation and 24 valid API keys for Google Gemini, OpenAI, Groq, and OpenRouter. Affected services span Google, Microsoft, Anthropic, Amazon, Character.ai, Cursor, Poe.com, Pika AI, Notion, and Gamma. Okta also found that 17.7 percent of the JWTs carried plaintext personally identifiable information.
Why it matters
Session tokens and API keys are collected specifically because they can be replayed, and a replayed token never meets an authentication decision. That is why "we have MFA everywhere" and "we had an account takeover" coexist so comfortably in the same incident report.
Two numbers are worth pulling out. 1,843 tokens still live at publication is a measurement of the window defenders actually have, and it is short, which argues for fast automated revocation rather than a triage queue. And 17.7 percent of JWTs containing plaintext PII is a finding about our own engineering: a JWT is signed, not encrypted, so anything in the payload is readable by whoever holds the token. Putting an email address, a name, or an internal identifier in there turns a stolen session into a stolen record.
The controls are the same ones the Claude session hijacking pointed at ten days earlier, which is the point: this is one problem, not an AI problem. Bind tokens to a device so replay from elsewhere fails, keep lifetimes short enough that a dump ages out before it is traded, and monitor for a token presented from an address or device that never completed the login that issued it. And keep PII out of the payload.
Source: The Hacker News
Related on Start with Identity
- BlogA Check Point SmartConsole flaw hands out full admin tokens to unauthenticated attackers
CVE-2026-16232 (CVSS 9.3) lets an unauthenticated remote attacker obtain an application login token for Check Point Security Management and Multi-Domain Managem
- BlogForged OIDC tokens in SimpleHelp RMM handed out technician access to 1,000 exposed servers, no MFA required
CVE-2026-48558 lets an unauthenticated attacker forge OpenID Connect tokens against SimpleHelp remote-monitoring software configured for group login, gaining pr
- BlogA SharePoint JWT validation bug let unauthenticated attackers become any user, including admins
CVE-2026-55040 (CVSS 9.1) let a remote, unauthenticated attacker who knows a target's Active Directory SID or user principal name forge a valid session as that
- CVECitrix Bleed, session-token leak from NetScaler ADC
A buffer over-read on NetScaler ADC/Gateway leaked session tokens in the clear. Attackers replayed them and skipped the login, including MFA. CISA KEV. October
- CVEDuende OAuth token management mixes tokens across requests
A race in Duende's .NET OAuth token-management package could attach client A's token to client B's request. Session mix-up, not a crypto break, but it is still
- CVEEntra ID Actor tokens enabled cross-tenant Global Admin
Undocumented Actor tokens plus an Azure AD Graph tenant-validation flaw let an attacker impersonate any user, including Global Admin, in every Entra ID tenant.