thinQmaster Virtual testing partner Adaptive practice exams that find your weak spots and drill them. Every answer explained. From $69
Enroll

thinQmaster

Find your exam

Five questions free, before you decide.

Step 1 · choose a vendor

In one of our camps? Your practice exams come with the tuition — they are on your study page already.

The Keys Were the Target: LiteLLM, Gheist and the Week Machine Credentials Became the Attack Surface

Navy Campus Wire cover with the headline The Keys Were the Target and a red key icon

In one week, attackers poisoned an AI gateway that gets about 92 million downloads a month, planted secret-stealing workflows in more than 850 GitHub accounts, and broke into a cloud hosting platform's internal systems. The attackers didn't need to steal anyone's password. They went after tokens, keys and pipeline credentials, the identities that machines use.

Every week I see the same mistake in class: people think identity means people. Usernames, MFA, a password policy. That's on the exam, and it isn't wrong. But the last ten days show where attackers are actually going: the credentials your pipelines, AI tools and cloud workloads carry around unwatched.

92M
Monthly PyPI downloads of LiteLLM
104
Minutes the bad build was live on PyPI
850+
GitHub accounts used by Gheist
13,500+
Malicious branches recovered
What happened

Three incidents, one pattern

LiteLLM 1.107.0 (Oct 21)

LiteLLM is a popular open-source gateway that sits between apps and AI model providers. Attackers used stolen developer GitHub credentials to push a poisoned release to PyPI and Docker Hub through the project's own release pipeline. The malware stole cloud keys, AI provider keys, SSH keys and CI/CD secrets.

Gheist (Wiz, Oct 27)

A tool that takes a stolen GitHub token, finds every repo it can reach, and commits a workflow that prints the repo's secrets into the run log, encoded in base32 so GitHub's log masking doesn't catch them. The attacker downloads the log and deletes the run seconds later.

Railway (Oct 23)

The cloud hosting platform disclosed unauthorized access to its internal systems. It told customers to revoke and replace sensitive credentials they had stored on Railway before October 21 and to review their GitHub and container registry audit logs.

None of these started with a phished end user typing a password into a fake login page. Each one ran on a credential that a machine or a pipeline was holding.

Anatomy

How a release pipeline gets turned against you

The LiteLLM maintainers published a detailed timeline. Every step is a control that worked or failed. All times UTC, October 21.

  • 10:08Branch protection blocks the change
    An unauthorized edit to the release workflow is rejected. Five seconds later, a privileged developer credential overrides the protection.
  • 10:46Staging runs from a lookalike repo
    The pipeline is pointed at an attacker-controlled repository with a near-identical name.
  • 11:11The approval gate is satisfied
    A second developer's credential approves the production run. This was a two-person control, and both people's credentials had been stolen.
  • 11:39Malicious wheels hit PyPI
    Docker images follow seven minutes later. A third credential deletes the workflow records.
  • 13:23 to 14:20Pulled from PyPI, then Docker Hub
    Security vendors flagged the release within minutes, but anyone who installed or pulled it in that window has to assume their secrets are gone.

Here's the detail I'd put on a whiteboard. According to Microsoft's analysis, the payload didn't live in the LiteLLM code. It dropped a .pth file into the Python environment, which Python runs automatically every time the interpreter starts. You didn't even have to import LiteLLM. Running pip to check the version could set it off again.

A two-person rule only works if the credentials are protected

Branch protection and a separate production approver are textbook controls, and LiteLLM had both. They were bypassed because the attacker held the credentials of the people allowed to override them. Separation of duties breaks down when the same weakness, long-lived tokens sitting where they can be stolen, applies to everyone involved.

My take

Non-human identity is the attack surface now

Gheist is the cleaner lesson. There's no attacker server to block and no malware on a laptop. It uses GitHub's own features: a token, a branch, a workflow, a log. GitHub added an approval hold for suspicious workflow runs in July, but it covers public repositories only. Wiz found the attacks working in private repos and GitHub Enterprise Server, where the production secrets usually live.

Look at what CompTIA announced the same week. On October 22 it said it is building AgentOps+, a vendor-neutral credential for people who deploy, secure, monitor and govern AI agents, planned for Q2 2027. One of the listed areas is "securing agent identities, permissions, and data access." That isn't a coincidence. AI agents are one more kind of non-human identity holding keys, and the LiteLLM malware went straight for AI assistant, IDE and MCP config files.

On the exam

What you study

Already in your objectives

  • Supply chain risk and software provenance
  • Secrets management and key rotation
  • Least privilege and separation of duties
  • Logging, monitoring and audit trails
On the job

What this week tested

Where the concepts hit production

  • Pin dependencies by version and hash, and pin images by digest
  • Short-lived OIDC credentials instead of stored cloud keys
  • Tightly scoped tokens with expiry dates
  • Restricted outbound traffic from build and gateway hosts
Do this today

If you run Python, GitHub Actions or a PaaS

  1. Check for LiteLLM 1.107.0. Search environments, pip caches, lock files and images. Don't run Python in a suspect environment. Rebuild from a clean, pinned version (the maintainers point to 1.106.2).
  2. Hunt for Gheist. Search GitHub audit logs for the gheist user agent and for branches starting with ci-sync-. If you use OIDC to cloud, check cloud audit logs for role assumptions from those branches.
  3. Rotate from a clean machine. Rotate repo, org and environment secrets plus cloud, model-provider and SSH keys. Deleting the malicious branch doesn't undo the exposure.
  4. Inventory your machine credentials. List every token, key and service account, who owns it, what it can reach and when it expires. If nobody knows, that's your first finding.
For your career

What this means if you're studying for a cert

  • Security+ and CySA+ candidates: when you read "supply chain" and "secrets management," picture the LiteLLM timeline. Scenario questions reward people who can say which control failed and why.
  • Cloud and DevOps folks: CI/CD security is now core security work. If you can explain OIDC federation, scoped tokens and pinning by digest in an interview, you stand out.
  • Anyone watching AI certs: SecAI+ is available now, and CompTIA has put AgentOps+ on the 2027 calendar. I don't think you should wait for it. The identity and governance skills it will test are the same ones you can build today.

Build the skills this week tested

Our CompTIA SecAI+ class is built around securing AI systems. It runs live in the classroom and online at the same time, with military and veteran funding options. Want to find your weak spots first? Take a thinQmaster practice exam.

Call 855-868-4467 or email website@thinqtanklearning.com

— Scott

More from the blog