Skip to content

Security and governanceGuide

What is LLMjacking? Stolen credentials, your AI bill

LLMjacking turns a leaked cloud or AI credential into someone else's model access, paid for by you. The term is two years old; in 2026 demand from distillation campaigns gave stolen keys a new buyer. Here is how the attack works and what stops it at the cloud and key level.

By INFRO Editorial

Published

8 min read

A glowing glass hub on a dark ground with amber lines running out to small glass nodes around it

In short

LLMjacking is the use of stolen cloud or AI API credentials to call hosted language models at the victim's expense, either for the attacker's own use or to sell the access on. Sysdig's threat research team coined the term in 2024 after watching attackers use stolen AWS credentials against Bedrock; Microsoft later sued a group that used scraped customer credentials against Azure OpenAI Service. Defend with short-lived or narrowly scoped credentials, provider-side spend limits, per-key usage monitoring and fast revocation at the provider.

Key takeaways

  • LLMjacking is model access paid for with someone else's stolen credentials; Sysdig's threat research team named it in May 2024.
  • Attackers validate a stolen key cheaply, enable models if they can, try to switch off logging, then use the access or sell it through a proxy that hides the key.
  • Anthropic's September 2026 threat report says distillation proxies often use stolen API credentials of legitimate companies, which gives stolen keys a steady buyer.
  • At the cloud level, prefer short-lived credentials and identity over static keys: Bedrock short-term keys, Azure with key access disabled, restricted Google keys.
  • At the key level, scope every key, set provider-side spend limits, watch usage per key and rehearse revocation.
  • A gateway's controls govern traffic that goes through it; a stolen provider key used directly is stopped only by the provider.

What is LLMjacking? LLMjacking is the use of stolen cloud or AI API credentials to run hosted language models at the victim's expense. The attacker either uses the access directly or sells it on, usually through a proxy that hides the stolen key from the people paying for it. The victim's account takes the bill, the quota exhaustion and, sometimes, the terms-of-service consequences of what was generated.

It is credential abuse with a model attached. What makes it worth its own name is the economics: a valid key for a frontier model is directly convertible into money, needs no further exploitation, and can be validated in one cheap request. This guide covers where the term came from, how the attack runs, what changed in 2026, and the defenses that work at the cloud and the API-key level.

Where the term comes from

Sysdig's Threat Research Team described the attack in May 2024. Attackers had taken cloud credentials from a system running a vulnerable version of Laravel (CVE-2021-3129), then used them against hosted models, including Anthropic's Claude on Amazon Bedrock. A credential-checking script tested stolen credentials against ten AI services, among them AWS Bedrock, Azure, Google Cloud Vertex AI, OpenAI, Anthropic and Mistral. Sysdig found signs of an OAI Reverse Proxy, which lets an operator sell access to several LLM accounts without exposing the underlying credentials, and estimated a worst case of over $46,000 a day in consumption for the victim1.

The September 2024 follow-up states that "LLMjacking is a term coined by the Sysdig Threat Research Team". It raised the worst-case estimate to over $100,000 a day for the most capable models of the time, and listed the motives it observed: free personal use, selling access to people banned by the provider, access from sanctioned countries, and a large share of roleplay prompts2.

How an LLMjacking operation works

The steps Sysdig documented on AWS generalise to any provider. What changes is which logs record them.

StageWhat the attacker doesWhere it shows up
ObtainTakes keys from a vulnerable server, a public repository, a client bundle, a compromised tool or a breached third partyUsually nowhere you watch; often the first sign is the bill
ValidateSends a deliberately invalid request; a validation error instead of access denied proves the key worksBedrock: InvokeModel calls returning ValidationException in CloudTrail1
EnableTurns on models the account has not used, where permissions allowBedrock: PutFoundationModelEntitlement and PutUseCaseForModelAccess2
HideChecks or removes invocation logging so prompts are not recordedBedrock: GetModelInvocationLoggingConfiguration, DeleteModelInvocationLoggingConfiguration
Use or sellRuns prompts directly, or puts the key behind a proxy and sells accessUsage on the key: models, volume and hours unlike your own

Two details matter for defenders. First, validation is cheap and quiet: a single failed request is enough. Second, the hide step means you cannot rely on prompt logs to tell you what happened; CloudTrail records the API call but not the prompt or response content1.

Storm-2139: the Azure OpenAI case

In January 2025 Microsoft's Digital Crimes Unit said a foreign-based group had developed software using "exposed customer credentials scraped from public websites" to access accounts for generative AI services, alter what those services could do, and sell access to others with instructions for generating harmful content. Microsoft revoked the access, added countermeasures and, under a court order, seized a website central to the operation3.

In February 2025 it named the network Storm-2139, identified Microsoft's Azure OpenAI Service among the affected services, and named four defendants in an amended complaint. It described three tiers: creators who built the tools, providers who modified and supplied them, and users who generated the content4. The case shows the full supply chain: credentials leaked by customers, tooling that turns them into access, and a sales layer in front.

What changed in 2026: distillation became a buyer

Through 2024 and 2025, stolen keys were mostly sold for personal use and content the providers' policies refuse. In 2026, demand from model distillation added a buyer with a much larger appetite.

Anthropic's September 2026 threat report says the labs it identified generally reach its models through proxy services, also called "transfer stations", which create thousands of accounts using false identities, stolen payment cards and stolen API keys, and "will often use stolen API credentials belonging to legitimate companies or individuals". The same report describes criminal groups whose sole objective is compromised AI keys, session tokens and devices, selling that access through brokers, and says that for one group it tracked, the keys "were stolen from Anthropic customers' environments", not from Anthropic's systems5.

The joint CISA, NSA and FBI advisory AA26-251A describes the same "transfer stations" as a gray market of proxies and lists indicators such as shared accounts used from many IPs and user agents, and round-the-clock usage with no idle periods. It is written about fraudulent and unregistered accounts; it does not discuss stolen customer keys6. Reading its indicators as signs that your own key has been taken is our inference, not the advisory's guidance, but they are a reasonable checklist for usage on a key you own.

On 2026-10-17 OpenCode disclosed a breach of its Console that it described as related to "a large-scale distillation attack" and in which third-party provider keys saved in workspaces may have been exposed; BleepingComputer reported users describing unauthorized charges overnight7. OpenCode has not published a root cause. What OpenCode has said so far is covered separately, and how distillation campaigns use stolen keys goes deeper into that market.

Defenses at the cloud level

On a cloud provider the strongest move is to replace static secrets with identity, so that a copied string is worth little.

Amazon Bedrock. Bedrock offers short-term API keys, valid up to 12 hours and inheriting the permissions of the IAM principal that generated them, which AWS recommends for production; long-term keys are "for exploration only". You can deny bedrock:CallWithBearerToken to identities that should never use an API key, cap long-term key lifetimes with the iam:ServiceSpecificCredentialAgeDays condition, and deactivate, reset or delete a compromised long-term key8. Add the detections Sysdig recommends: alerts on model-access changes, on invocation-logging changes and on ValidationException bursts, with model invocation logging switched on1.

Azure OpenAI and Foundry Tools. Set disableLocalAuth to true, or apply the Azure Policy that requires key access disabled, so that only Microsoft Entra identities can call the resource. Microsoft warns that the change is not instant: the gateway can keep accepting previously valid keys until its cache refreshes, which can take up to several hours, so verify with the old key before you consider it done9.

Google Cloud. A standard Google API key does not identify a principal, so IAM cannot check who is calling. Google's documentation says "Unrestricted API keys are insecure" and recommends both API restrictions and application restrictions10. Where possible, call Vertex AI with a service account and IAM instead of a key. How Google API keys reach Gemini covers the specific Gemini exposure.

Defenses at the API-key level

Direct provider keys (OpenAI, Anthropic, Gemini API, and every other provider with a static key) cannot be replaced by identity everywhere yet, so reduce what each key is worth:

  • One key per workload and environment. A key shared by three services cannot be revoked without breaking all three, so nobody revokes it.
  • Scope each key. Project or workspace keys, restricted permissions, and an expiry date where the provider supports one.
  • Network restrictions where offered. OpenAI supports IP allowlists at organization or project level; a request from an address not on the list is refused even with a valid key11.
  • A spend limit at the provider. It is the only ceiling that applies to a key used directly against the provider.
  • Usage per key, watched daily. Abuse hides in an account total and stands out on the one key that should be quiet; see signs your key is being abused.
  • Secret scanning and push protection on every repository, so the commonest leak path is closed.
  • A rehearsed revocation. Know who can revoke each key, where, and what breaks when they do.

The per-provider steps are in the runbooks for a leaked OpenAI key and a leaked Anthropic key. For storage and rotation in general, see how to secure LLM API keys.

How INFRO handles LLMjacking risk

INFRO is a gateway that runs on provider accounts you connect; it holds no provider accounts of its own. Its controls reduce what a leaked application credential is worth. Applications use INFRO gateway keys (sk_infro_), stored only as a SHA-256 digest, which can be limited to chosen providers and IP ranges (a request from elsewhere gets 403 ip_not_allowed before any provider call), belong to one environment, expire, and rotate with an overlap window. Budgets per organization, project, member and key are checked before the provider is called, and spend alerts flag a day that departs from a scope's usual day. Provider credentials you connect are encrypted with AES-256-GCM and never shown again; see Connect a provider.

The limit is plain: INFRO's controls govern traffic that goes through INFRO. A provider key stolen from anywhere, including from a platform like INFRO that holds customers' provider keys, can be used directly against the provider, and no INFRO budget or allowlist sees that request. The backstops are at the provider: scoped keys, provider spend limits, usage monitoring and revocation. On the Business plan, with usage access on, reconciliation compares OpenAI's and Anthropic's own usage data with what passed through INFRO, which can show traffic on your keys that did not go through the gateway.

Summary

LLMjacking is model access paid for with a stolen credential. Attackers validate cheaply, enable what they can, hide what they can, and use or sell the access; in 2026 distillation proxies became a steady buyer for stolen keys. Replace static secrets with identity on the clouds, scope and cap every remaining key at the provider, watch usage per key, and make revocation something you have already practised.

Questions readers ask

What is LLMjacking?
The use of stolen cloud or AI API credentials to call hosted language models at the credential owner's expense. Attackers use the access themselves or sell it to others, often through a proxy that hides the stolen key from the buyer.
Who coined the term LLMjacking?
Sysdig's Threat Research Team. It described the attack in May 2024 after observing stolen AWS credentials used against hosted models, and its September 2024 follow-up states the term was coined by the team.
How do I know if I am a victim of LLMjacking?
Look at usage per credential: a key that should be idle but has traffic, models your code never calls, round-the-clock usage, or model-access and logging configuration changes you did not make. On AWS, CloudTrail records Bedrock API calls such as InvokeModel and changes to model invocation logging.
Can a gateway or proxy stop LLMjacking?
Only for traffic sent through it. If a provider or cloud credential is stolen, the attacker calls the provider directly and no gateway sees the request. Provider-side spend limits, scoped and short-lived credentials, and revocation at the provider are the controls that still apply.

From the team that builds it

Where this shows up in INFRO

INFRO is a control plane in front of the provider accounts you already hold. The capabilities below are the parts of it this article touches, each with the documentation that defines its behaviour.

  • Provider connections

    Available with a plan

    Connect provider accounts you already hold. Each credential is encrypted when saved, scoped to your organization and never shown again; applications use INFRO gateway keys instead.

    Read the documentation for Provider connections
  • Key limits and rotation

    Available with a plan

    Limit a gateway key to chosen providers or IP ranges, and rotate it with an overlap window so the old key keeps working while you deploy the new one.

    Read the documentation for Key limits and rotation
  • Budgets and spend ceilings

    Available with a plan

    A hard cap per organization, project, member, and key, with alerts at your own thresholds.

    Read the documentation for Budgets and spend ceilings
  • Spend anomaly and drift alerts

    Available with a plan

    Each scope's usual day is learned from its own history; a day that departs from it, a budget forecast to be exceeded, cost estimates drifting from the provider's own figures, unpriced traffic and failing connections become findings in the console. Routed to email on every plan, and to Slack and signed webhooks from the Startup plan.

    Read the documentation for Spend anomaly and drift alerts
  • Provider cost reconciliation

    Available with a plan

    Daily comparison of estimated spend against the cost reported by OpenAI's and Anthropic's own cost APIs, using a separate admin credential, with the likely cause of a persistent gap and a suggested rate you can apply. Included on the Business plan.

    Read the documentation for Provider cost reconciliation
  • Environments

    Available with a plan

    Production, staging and development to start, and your own beside them. A connection or route serves one, several or every environment; each gateway key belongs to exactly one, and never reaches a connection outside it.

    Read the documentation for Environments

INFRO accounts are self-serve. Provider usage is billed to you by your providers; INFRO charges a software subscription and takes 0% of model spend. See plans.

Sources

Numbered in order of first citation. Each was opened and checked against the claim on the date shown.

  1. 1.LLMjacking: Stolen Cloud Credentials Used in New AI Attack (opens in a new tab) — Sysdig. Accessed Oct 21, 2026.
  2. 2.The Growing Dangers of LLMjacking: Evolving Tactics and Evading Sanctions (opens in a new tab) — Sysdig. Accessed Oct 21, 2026.
  3. 3.Taking legal action to protect the public from abusive AI-generated content (opens in a new tab) — Microsoft. Accessed Oct 21, 2026.
  4. 4.Disrupting a global cybercrime network abusing generative AI (opens in a new tab) — Microsoft. Accessed Oct 21, 2026.
  5. 5.Detecting and countering misuse of AI: September 2026 (opens in a new tab) — Anthropic. Accessed Oct 21, 2026.
  6. 6.China-Based Artificial Intelligence Companies Conducting Industrial-Scale Distillation Campaigns Against U.S. AI Companies (AA26-251A) (opens in a new tab) — CISA, NSA and FBI. Accessed Oct 21, 2026.
  7. 7.OpenCode hack exposes API keys amid AI distillation attacks (opens in a new tab) — BleepingComputer. Accessed Oct 21, 2026.
  8. 8.API keys (Amazon Bedrock User Guide) (opens in a new tab) — Amazon Web Services. Accessed Oct 21, 2026.
  9. 9.Disable local authentication in Foundry Tools (opens in a new tab) — Microsoft Learn. Accessed Oct 21, 2026.
  10. 10.Manage API keys (opens in a new tab) — Google Cloud. Accessed Oct 21, 2026.
  11. 11.IP allowlisting for OpenAI API (opens in a new tab) — OpenAI Help Center. Accessed Oct 21, 2026.

About this article

Sources opened on 2026-10-21: Sysdig's two LLMjacking research posts (May and September 2024), Microsoft's Digital Crimes Unit posts of January and February 2025, Anthropic's September 2026 threat intelligence report, CISA/NSA/FBI advisory AA26-251A, BleepingComputer's report on the OpenCode Console incident, and AWS, Microsoft and Google documentation on Bedrock API keys, disabling local authentication and API key restrictions. Mapping the distillation indicators to ordinary key holders is our inference and is labelled as such. Written by the team that builds INFRO.

Last checked against its sources on . The next review is due by . No separate named reviewer is recorded for this article.

How articles are written, sourced and corrected is set out in the editorial standards.