DKDKCISSP
Cloud Credential Theft — AI Resource Hijacking

LLMjacking: stolen cloud keys, a $60 "unlimited" AI plan, and a victim left with a $1 million bill

Google's threat intelligence team and Mandiant investigated a run of 2026 intrusions in which attackers stole cloud and AI credentials, switched on expensive AI services victims weren't using, and resold the access through "LLM mixers." Charges topped $100,000 in a single day.

Single-day charges
$100,000+
Cumulative bill (worst)
Up to $1M
Calls in < 8 hours (one actor)
500,000+
Dominant entry point
Stolen cloud identity credentials
Resale price
~$60/month

Background

Cloud AI platforms — Amazon Bedrock, Google's Gemini API and Vertex AI, Azure OpenAI and others — bill by usage. Whoever holds a valid key or cloud identity with access to them can run up charges, and the bill goes to the account owner. That makes stolen AI access directly monetizable in a way stolen compute for cryptomining never quite was.

This case study is built on Google Threat Intelligence Group (GTIG) and Mandiant's November 2, 2026 report on incidents Mandiant responded to during 2026, affecting financial services, retail, technology and transportation organizations in North America, South America and Asia Pacific. The victims are not named; the attack lifecycle is documented in detail.

From a leaked key to a resold AI subscription

Cloud identity or AI key stolenService account keys, GitHub tokens, session tokensEscalation and persistenceAdmin roles, backdoor accounts, injected SSH keysAI services switched on, new keys mintedBedrock, Gemini API — not previously enabledAccess resold through LLM mixerse.g. Jet Night, ~$60/month "unlimited"Victim billed for every token$100K+ in a day · up to $1M total
Fig. 1 — Initial-access actors and resellers are now separate businesses, connected by stolen keys.

What actually happened

Across the incidents Mandiant handled, the dominant entry point was stolen cloud identity material: IAM credentials, service account keys, GitHub personal access tokens and active session tokens. One cluster GTIG tracks as UNC6993 compromised a cloud instance through a misconfigured service account key in mid-2026; it also ran a fake "application portal" for an LLM user group that tricked people into pasting a raw JSON payload containing a live access token, bypassing passwords and MFA. Other actors used cloud federation tokens to mint fresh access keys around MFA, scraped LLM API keys from public GitHub repositories and quietly tested each with a one-token request (max_tokens=1) to stay under volume alerts, or probed publicly exposed model endpoints.

Once inside, attackers mapped services and identity policies across regions, cloned code repositories to hunt for hard-coded secrets, and queried data-warehouse metadata for database credentials. They escalated by minting tokens for higher-privilege service accounts, attaching administrative policies, creating full-admin IAM accounts and backdoor service accounts disguised as "billing optimization utilities," and injecting SSH keys into VM and project metadata. A follow-on cluster exploited a LiteLLM gateway flaw (CVE-2026-40217) to turn ordinary virtual keys into proxy-admin master credentials.

Then they monetized. Attackers enabled managed AI services that were not switched on at the time of compromise, created additional API keys, signed victim accounts up to pay-as-you-go agreements, requested quota increases, and ran high-volume inference against premium models. UNC6993 quickly ran up more than $100,000 in charges this way. Much of the access ended up in "LLM mixers" — gateways that pool stolen keys, meter usage and resell it. One actor made more than 500,000 LLM API calls in under eight hours with stolen third-party keys to power a token-routing service called Jet Night, which advertised unlimited frontier-model access for about $60 a month and passed nearly $1 million in token costs to the victim. Jet Night's own channel advertised outages that GTIG believes coincided with victims discovering the theft and revoking keys.

Why this is now a bigger target than cryptominingGTIG expects attackers to increasingly favor LLMjacking over cryptojacking. Cryptomining on stolen compute pays slowly; resold AI access pays immediately, at high margin, and request spikes can exceed 1,000 per second. The financial damage lands in hours, not months.

Root cause

Confirmed
  • Exposed or stolen cloud identity credentials — IAM credentials, service account keys, GitHub personal access tokens and session tokens — were the dominant initial-access vector (GTIG/Mandiant).
  • Misconfigured and over-privileged service account keys let attackers reach AI services and escalate to administrative control.
  • LLM API keys committed to public repositories were harvested and validated by automated scripts.
  • Victims' cloud projects allowed AI services to be enabled and new keys created without effective spending caps, quotas or alerting, so charges accumulated to $100,000+ per day before access was revoked.
  • In at least one case, an unpatched LiteLLM gateway (CVE-2026-40217) allowed escalation to master credentials.
Reasonable hypothesis — not confirmed
  • The report covers multiple anonymized victims; which specific failure was decisive in each individual case is not public.
  • Data-access logging for AI inference is disabled by default on some platforms, which likely delayed detection in several incidents — an inference from GTIG's detection guidance rather than a per-incident finding.

Timeline

Stolen cloud credentials, service account keys, session tokens or scraped LLM API keys; exposed model endpoints.
T1078.004 · Valid Accounts: Cloud AccountsT1552 · Unsecured Credentials
Map services and IAM across regions; clone repositories and scan logs and data warehouses for more credentials.
Mint tokens for privileged service accounts, attach admin policies, create backdoor accounts, inject SSH keys.
T1098 · Account ManipulationT1136.003 · Create Account: Cloud Account
Switch on Bedrock or Gemini APIs not previously used, create new keys, request quota increases, sign up for pay-as-you-go.
T1496 · Resource Hijacking
Access pooled and resold via LLM mixers; one actor made 500,000+ calls in under 8 hours.
Charges reach $100K+ in a day and up to $1M cumulatively before victims revoke access.
GTIG and Mandiant publish the lifecycle, IOCs (jet-night.com, newapi.pro) and detection guidance.
Fig. 2 — The attack lifecycle Mandiant observed across 2026 LLMjacking incidents.

Detection

How it was discovered

In the incidents described, victims typically discovered the compromise through runaway charges and usage spikes, then engaged Mandiant. GTIG links Jet Night's advertised outages to victims revoking stolen keys — i.e., discovery generally came after significant spend.

Time to detect

Often hours to days — long enough for $100K+ in a single day

Warning signs that were missed
  • AI services being enabled in projects that had never used them.
  • New API keys, service accounts or IAM users created outside infrastructure-as-code.
  • Low-volume validation requests (max_tokens=1) from unfamiliar sources before the spike.

What to monitor for in your own environment

Any AI service enablement — e.g. ServiceUsage.EnableService for aiplatform/generative APIs on GCP; PutUseCaseForModelAccess or CreateFoundationModelAgreement on AWS

Cloud audit logs (GCP Audit Logs, CloudTrail)

Inference volume spikes — Bedrock InvokeModel/Converse; Vertex PredictionService GenerateContent; Azure Chat Completions

Data-access / diagnostic logs (often off by default)

Changes to model-invocation or diagnostic logging configuration from non-IaC identities

Cloud audit logs

New access keys, service accounts, admin role attachments or project-wide SSH keys

Cloud audit logs / IAM

Spend or quota alerts per model, per project, per day

Billing budgets and quota alerts

Containment, eradication & recovery

Containment

  • Revoke and rotate compromised cloud identities, service account keys, GitHub tokens, LLM API keys and gateway virtual keys.
  • Disable AI services and model access that were enabled without authorization.
  • Apply hard spending caps and per-model quotas immediately.

Eradication

  • Remove unauthorized IAM users, service accounts, admin policy attachments and injected SSH keys or metadata.
  • Hunt for GPU instances, reverse proxies and LiteLLM gateways you did not deploy.
  • Patch LiteLLM for CVE-2026-40217 and audit proxy-admin grants and key-regeneration activity.

Recovery

  • Review billing for anomalous charges, pay-as-you-go agreements and quota-increase requests, and engage the provider on disputed charges.
  • Block known IOCs such as jet-night.com and newapi.pro.
  • Re-enable AI services only with scoped keys, budgets, quotas and inference logging switched on.

Security control analysis

Failed
Cloud credential hygiene — no long-lived, exposed keys

Stolen or exposed IAM credentials, service account keys and tokens were the dominant entry point.

Failed
Least privilege on service accounts

Service accounts with broad permissions and token-creation rights enabled escalation to full admin.

Absent
Spending caps and per-model quotas

Charges reached $100K+ in a day and up to $1M before anyone stopped them.

Failed
Monitoring of AI service enablement and inference logs

AI APIs were switched on in projects that had never used them; inference data-access logging is off by default on some platforms.

Failed
Secret scanning on code repositories

LLM API keys were scraped from public GitHub repositories.

Partial
Phishing-resistant MFA

Attackers bypassed MFA with stolen session tokens, pasted JSON tokens and federation tokens — standard MFA wasn't enough.

Controls that would have prevented or limited this

Fix
Set hard budgets and per-model, per-key quotas on every AI service

A stolen key can only spend a bounded amount before it stops working — no $1M bill.

Closes: Spending caps and per-model quotasCIS Control 4 — Secure Configuration
Fix
Deny AI service access by default; enable it per project with explicit approval

Attackers cannot simply switch on Bedrock or Gemini in a project that never needed them.

Closes: Least privilege on service accountsCIS Control 6 — Access Control Management
Fix
Eliminate service account keys in favor of workload identity; rotate everything else from a secrets manager

There are far fewer long-lived keys to steal, and those that exist expire.

Closes: Cloud credential hygiene — no long-lived, exposed keysCIS Control 5 — Account Management
Fix
Alert on AI service enablement, new keys and logging changes as critical events

The first EnableService call, not the invoice, becomes the detection point.

Closes: Monitoring of AI service enablement and inference logsCIS Control 8 — Audit Log Management
Fix
Run secret scanning on all repositories and block pushes containing keys

Keys never reach public GitHub for scrapers to find.

Closes: Secret scanning on code repositoriesCIS Control 16 — Application Software Security
Fix
Enforce phishing-resistant MFA and short session lifetimes for consoles and developer platforms

Stolen session and federation tokens are harder to use and expire sooner.

Closes: Phishing-resistant MFACIS Control 6 — Access Control Management

Blast radius

What victims lost

  • Fraudulent AI charges above $100,000 in a single day
  • Cumulative charges up to $1 million at some organizations
  • Infrastructure, database and third-party API credentials pulled from secret managers in some intrusions
  • Victims' cloud used to host attackers' proxies and agentic workloads

What limited it

  • Revoking keys cut off the resale services — Jet Night's outages tracked victims' revocations
  • Providers' audit logs captured enablement and key-creation events, where enabled
Fig. 3 — The loss is financial first, but the same access often reached secrets and data.

What stolen AI access costs the victim vs. what it sells for

Victim's cumulative bill (worst cases)$1,000,000Fraudulent charges in a single day$100,000+Jet Night "unlimited" plan, per month~$60
Fig. 4 — The resale price only works because someone else is paying the real cost.

What they got right

GTIG and Mandiant published the full lifecycle with concrete log events to alert on for GCP, AWS and Azure, and named indicators (jet-night.com, newapi.pro) — guidance defenders can implement directly.

Victims that revoked keys disrupted the resale services immediately, showing that fast revocation directly cuts off the attacker's revenue.

The report separated the two businesses — initial-access actors and LLM mixers — which helps defenders and providers target both.

Why this keeps happening

Cloud keys and AI API keys are created freely by developers, embedded in code and notebooks, and rarely given budgets or scopes.

Many organizations have AI services available in every project by default, even where no one uses them.

Inference logging is often off by default, so the first signal is the invoice.

An underground resale market now exists to turn any stolen key into cash within hours.

Lessons for your own environment

  1. An AI key is a credit card — give it a limit

    Budgets and per-key quotas are the single control that caps the loss regardless of how the key was stolen.

  2. Switching on an AI service is a security event

    Attackers enabled services victims never used. Alert on enablement the way you'd alert on a new admin.

  3. Service account keys are the weak point

    They were the most common way in. Move to workload identity and delete keys you don't need.

  4. Turn on inference logging before you need it

    Data-access logs for AI calls are off by default on some platforms. Without them you see the bill, not the abuse.

  5. Patch your AI gateways like any other internet-facing service

    A LiteLLM flaw turned ordinary keys into master credentials. Proxies and gateways belong in your patch program.

  6. Scan for secrets everywhere code lives

    Keys scraped from public GitHub repos were validated with a one-token request and resold.

CISO & board lessons

  • Require a budget, quota and named owner for every AI API key and every project with AI services enabled. No owner, no key.
  • Make AI service enablement, new key creation and logging-configuration changes critical alerts routed to the SOC, not just billing notifications.
  • Set a target date to eliminate long-lived service account keys and classic tokens in favor of workload identity and short-lived credentials.
  • Include AI gateways and model proxies (LiteLLM and similar) in vulnerability management and attack-surface inventories.
  • Agree in advance with your cloud and AI providers how fraudulent-usage disputes are handled. Refund practice has been discretionary.

Action plan

First 24 hours

  • Revoke every exposed or suspicious cloud credential, service account key and AI API key; disable AI services enabled without approval.
  • Apply hard budgets and quotas on all AI services immediately.
  • Hunt for new IAM users, service accounts, admin policy attachments and SSH keys created in the window.

First 7 days

  • Enable inference data-access and diagnostic logging, and alert on enablement, key creation and logging changes.
  • Scan all repositories and CI logs for exposed keys; rotate and purge.
  • Patch AI gateways (CVE-2026-40217 for LiteLLM) and audit admin-key grants.

First 30 days

  • Replace service account keys with workload identity; move remaining secrets to a managed vault with rotation.
  • Scope AI keys by model and environment so a basic key cannot call premium models.
  • Run shadow-AI discovery across all cloud accounts and decommission unowned AI resources.

Could this happen in your organization?

  • Does every AI API key and AI-enabled project in your cloud have a spending cap and quota?
  • Would you get an alert — not just a bill — if someone enabled Bedrock, Vertex AI or Azure OpenAI in a project that never used it?
  • Is inference data-access logging switched on for your AI services?
  • How many long-lived service account keys exist across your cloud accounts?
  • Do you scan every repository and CI log for exposed AI and cloud keys?
  • Are your AI gateways and model proxies patched and inventoried like other internet-facing services?

If this happened to you: what to ask, and what to say

Knowing the lesson isn’t the same as knowing what to do with it Monday morning. A security lead, a CISO, and a customer-facing team each need something different from this incident.

  • "Which projects have AI services enabled, and does each have a budget and an owner?"
    Unowned, uncapped AI projects are where the $1M bills come from.
  • "What alert fires if someone enables an AI API or creates a new key outside IaC?"
    If the answer is "the monthly invoice," that's the gap.
  • "How many service account keys exist, and how old is the oldest?"
    These were the most common way in.
  • Frame it as financial exposure.
    Boards understand uncapped liability.
    "A single stolen AI key can generate six-figure daily charges. We are putting hard spending limits on every AI service so the maximum loss from any one key is bounded."
  • Explain why it's growing.
    A resale market changes the economics.
    "Criminal services now resell stolen AI access cheaply, which makes any exposed key immediately valuable. We're treating AI keys as privileged credentials."
  • If you resell or embed AI for customers, address their keys.
    Customers' keys in your platform are part of your exposure.
    "We've added spending limits and alerts to the AI features in your account. We recommend rotating any API keys stored in code or shared outside your organization."

References & confidence

  • ConfirmedGoogle Threat Intelligence Group & Mandiant — The Rise of LLMJacking: How Threat Actors Monetize Compromised Cloud and Model Resources (Nov 2, 2026) — Primary source for lifecycle, figures, IOCs and detection guidance. Victims are anonymized.
  • ConfirmedBleepingComputer — Google: LLMjacking attacks rack up $1 million in cloud AI charges (Nov 3, 2026)
  • ConfirmedCSO Online — Enterprises pay $100,000 a day for AI they never ordered
  • ConfirmedSiliconANGLE — Google finds LLMjacking attackers running up $100K a day
  • UnknownPer-incident root cause for individual victims — The report aggregates multiple anonymized incidents; per-victim causes are not published.
This case study is built entirely from public reporting on this incident — see References & confidence above for what's confirmed, reported, or still unconfirmed. Nothing here is an estimate or an illustrative placeholder.