Cybersecurity · Sunday, 25 October 2026
LiteLLM says a key leaked on GitHub in May and never cancelled let an attacker take over its software releases
A master key posted by mistake in May still worked in October, and a release rule loosened that week let two stolen logins publish poisoned software downloaded 49,000 times.
136 days
between the key leaking and an attacker using it
it was posted on 27 May and used on 10 October
49,000+
downloads of the poisoned version, by one estimate
it was online for about three hours on 21 October
2 logins
were all the loosened rule needed to publish a release
before that week a device locked in LiteLLM's office had to approve it
The lead story — what happened
-
LiteLLM, free software that connects company apps to AI services, said on Friday how its release was taken over: through a secret key that leaked in May and was never cancelled.
[1] -
LiteLLM is downloaded about 92 million times a month from PyPI, the main store for Python software, and companies such as NVIDIA, Netflix and AT&T use it.
[4] -
On 27 May a settings file posted to one of its public GitHub projects held the master key to an internal tool LiteLLM uses to run AI agents.
[1] -
The team spotted the mistake quickly and wrote over the file, and listed the keys in it to be cancelled. The master key was never cancelled.
[1] -
On 10 October an attacker used that key to get into the tool and took a GitHub login token stored there.
[1] The token was not limited, and it belonged to the owner of LiteLLM's GitHub account, so it opened every project.[1] -
The same night the attacker ran hidden jobs that collected the GitHub logins of two engineers allowed to publish releases.
[1] Socket, a security firm, found the jobs ran on branches made and deleted within minutes, leaving almost no trace.[1] -
Normally a release needs one engineer to start it and a special account, locked to a device in LiteLLM's office, to approve it.
[1] That week the rule had been loosened so any two engineers could do both, to ship fixes faster.[1] -
The attacker used one stolen login to start the release and the other to approve it.
[1] [5] The poisoned version, 1.107.0, went out and was pulled on 21 October.[1] -
It was downloaded more than 49,000 times in about three hours, by one estimate.
[3] Microsoft said on 23 October that deleting LiteLLM's own files can leave its hidden start-up code behind.[1] -
LiteLLM's first account, on 22 October, said the tokens had probably leaked into its own logs through Claude Code, an AI coding tool.
[2] [3] Friday's account traces the break-in to the May key instead.[1] -
LiteLLM says it is now cancelling every token for every internal system and outside service it uses.
[1]
Who is involved
-
LiteLLM
a company whose free software links apps to many AI services; its own release was hijacked
-
Oliver Jensen
LiteLLM's director of security; he wrote its account of the attack
-
Socket
a security firm that checks free software; it recovered the attacker's hidden jobs
-
Wiz
a cloud security firm owned by Google; it saw stolen Amazon keys used about four and a half hours after the theft
How it unfolded
-
27 May A settings file with LiteLLM's master key is posted to a public GitHub project
[1] -
10 Oct An attacker uses the key and takes two engineers' GitHub logins
[1] -
12 Oct A second hidden job collects more keys, including for AI services
[1] -
21 Oct Poisoned version 1.107.0 is published and pulled within hours
[1] -
23 Oct LiteLLM publishes the full account of how it happened
[1]
Where this points
LiteLLM is cancelling every token it holds, and the open question is whether the AI and cloud keys stolen from its own systems and its users' machines were used before they were changed.
Signals on this beat
The bar and the word are our reading of how hard each one is pushing, and the arrow is where it is heading.
LiteLLM's master key leaked in May and still worked in October.
Bun, Python and Envoy each carry their own copy of Google's Brotli code and must each be updated.
LiteLLM loosened its release approvals the same week it was attacked.
The rest of the day
14 more stories on this beat.
Each with its own sources. None of these is a link to the story above.
-
02
Brotli flaw reaches Bun, Python and Envoy
A flaw in Brotli, Google's code for shrinking web data, also sits in Bun, Python's Brotli packages and the Envoy and Istio network tools.
[6] Bad compressed data can write past the end of a memory buffer, which can crash a program or let an attacker run code.[6] Node.js and Google shipped fixes on 21 October.[7] Each program carries its own copy of the code, so each must be updated on its own.[6] CISA, the US cyber-defence agency, recorded no attacks on 23 October.[6] fixed 21 OctNode.jsfixed in 1.4.4Bunfixed in 1.2.1Python BrotliOne flaw in Google's code, and a separate fix for every program that copied it. Why it matters — In Python a program is exposed just by having the Brotli package installed, since common web tools unpack Brotli data by themselves.
[6] A running program keeps the old code until it is restarted.[6] -
03
Ruby fixes the bugs behind GitLab's flaws
Ruby, a programming language, released versions 4.0.9, 3.4.12 and 3.3.13 on 23 October.
[8] They fix three bugs in Onigmo, the part of Ruby that reads search patterns.[8] Those bugs lay behind four critical flaws that GitLab, a site where teams store and build code, patched between 23 September and 21 October.[8] The two October flaws needed no login and were rated 10 out of 10.[8] GitLab had fixed them by shipping its own patched copy of Ruby.[9] 3 bugsRuby's pattern engine4 flawsGitLabThree bugs in Ruby's engine showed up first as four GitLab flaws. Every other Ruby program shares the engine. Why it matters — Any program that turns text from an outsider into a search pattern was exposed, not just GitLab.
[8] Ruby 3.2 and older get no fix, and Ruby has not given the bugs their own ID numbers, so tools that check by number see only GitLab.[8] -
04
Phishing takes over 4,500 Bluesky accounts
Bluesky, a social network, says a phishing attack has taken over more than 4,500 accounts.
[10] Phishing tricks people into typing their login into a fake page. The attack spread through posts promising a fake government payment.[10] Bluesky has suspended the taken accounts for now.[10] It says it is working with their owners to secure the accounts and give them back.[10] Why it matters — Owners whose accounts were suspended are told to email Bluesky's moderation team to get back in.
[10] Bluesky has not said who ran the attack or how many owners have their accounts back. -
05
Fake Okta pages push users off hardware keys
Dataminr, a firm that tracks threats, found phishing sites dressed as login pages for Okta and ServiceNow, two widely used business login and software services.
[10] They target companies that run the systems behind online shops.[10] The pages ask people who sign in with a YubiKey, a small hardware login key, to switch to a code sent by text or email instead.[10] Dataminr says this gets round the hardware key wherever company rules still allow those codes as a fallback.[10] Why it matters — A hardware key only answers the real website, but a typed code can be passed on from a fake one. Dataminr says breaking into these service firms gives attackers a way into the shops they serve.
[10] -
06
ChatGPT's GitHub link can be turned on its owner
Sunil Tripathy, a security researcher, showed a flaw in ChatGPT's link to GitHub, the site where programmers keep their code.
[10] Hidden instructions in a public project could lead ChatGPT, asked to review it, to write a job into a different, private project of the user.[10] That job could then run and send the private project's secrets out.[10] Part of the cause is that the link's default setting reaches every project an account holds.[10] OpenAI said the issue was out of scope for its bug reports.[10] Why it matters — The attacker needs no access to the victim's account, only a public project and a request to review it, Tripathy says.
[10] Every user who left the default setting in place is inside its reach.[10] -
07
Chinese coding AI writes weaker code for US clients
Hirundo, an AI company, tested Qwen3-Coder, a Chinese AI model that writes software.
[10] It says apps were 19% more likely to be hackable when the model was told they were for a US defence contractor rather than a Chinese one.[10] Apps for a Hong Kong democracy group were 28% more likely to let any user read everyone's secrets.[10] Hirundo says the effect goes away when the model's pro-China leaning is removed.[10] Why it matters — Companies around the world are building these open Chinese models into their work.
[10] Booz Allen Hamilton, a US consulting firm, reported a similar finding in May.[10] -
08
Laravel fixes a login skip
Laravel, a popular toolkit for building websites in the PHP language, fixed a critical flaw rated 9.2 out of 10.
[10] It sits in TokenGuard, the part that checks the secret key an app sends to prove who it is.[10] On some MySQL or MariaDB database setups, a specially shaped value could log an outsider in as another user without that user's key.[10] The fix is in versions 13.29.0 and 12.68.0.[10] Why it matters — Any page a site protects with that built-in check could have its accounts taken over by a stranger.
[10] The attacker needs no login of their own.[10] -
09
Three business tools fix serious flaws
Three pieces of business software have fixes for flaws that let outsiders in, The Hacker News reports.
[10] GLPI, a tool firms use to track their computers and help-desk requests, had a flaw letting an outsider read its whole database, fixed in 11.0.9.[10] Rapid7, a security firm, found three flaws in Eptura Archibus, building-management software, that let an attacker run commands without logging in.[10] A flaw rated 10 out of 10 in NVIDIA's AIStore, storage for AI data, can hand over the computer it runs on.[10] Why it matters — Each of these tools holds a company's records, so one flaw opens far more than the tool itself. Rapid7 says an attacker on Archibus could read secrets and passwords out of its database.
[10] -
10
AI computing firm Andromeda loses credentials
Andromeda, a company that provides computing for AI work, said it found on 13 October that someone had reached credentials inside its systems.
[10] It shut the affected accounts that day and says it has seen no misuse since.[10] It believes the break-in was part of an attack across the industry around 9 October.[10] A limited number of customers were hit, and it found no sign anyone reached their AI models or data.[10] Why it matters — Some of the exposed credentials were customers' own, not only Andromeda's.
[10] Andromeda says customers it believes were affected have already heard from it.[10] -
11
OpenCode fixes a flaw in its sign-in
Pillar Security found a critical flaw in OpenCode, an AI tool that helps people write software, on Windows computers.
[10] A rogue outside service plugged into OpenCode could run its own code on a programmer's machine during sign-in, with no extra click.[10] The maker, Anomaly, fixed it in version 1.18.33.[10] It comes days after OpenCode confirmed a break-in at its Console, which could have exposed users' keys for Anthropic, OpenAI and Google AI services.[10] Why it matters — OpenCode said the earlier break-in hit 1.4% of its Console users, as part of a large attempt to copy AI models.
[10] Its Windows users now need the update as well.[10] -
12
Chrome now asks before unprotected pages
Google's Chrome browser now asks permission before opening a website over plain HTTP, which sends pages without encryption.
[10] Encryption scrambles what travels between a browser and a site so nobody on the way can read or change it.[10] Until now the warning was only for people who had switched on Chrome's strongest safety mode.[10] It is now on for every user by default.[10] Why it matters — Anyone on the same network, such as a public Wi-Fi, can read or alter an unencrypted page, and the new question warns people before they open one.
[10] Google calls the change the end of more than ten years of work.[10] -
13
52 billion stolen browser cookies found online
NordVPN, a security company, says it found 52 billion stolen cookies in leaked data online in the year to June, the Guardian reports.
[11] A session cookie is the small file a website gives a browser after login so it need not ask again.[11] Malicious programs on a computer copy these cookies and send them to criminals.[11] With one, a thief can enter the account without the password or a login alert, and can often skip the second check.[11] Why it matters — NordVPN's Marijus Briedis says closing a tab does not end a session, but logging out makes the cookie useless to a thief.
[11] He says the malware usually hides in browser add-ons and downloaded software.[11] -
14
China-linked addresses keep trying old flaws
VulnCheck, a firm that tracks attacks on software flaws, says it saw attacks on five old, known flaws from three internet addresses in Hong Kong and Taiwan.
[10] The addresses appear in the US government's warning about Flax Typhoon, a hacking group linked to China.[10] Earlier this month the FBI and the US Justice Department disrupted tools the group used to scan and break into networks.[10] The flaws include ones in Apache web servers and XWiki, software for shared web pages.[10] Why it matters — VulnCheck published its alert as a follow-up to the FBI's action.
[10] All five flaws have had fixes for a year or more, so the servers at risk are the ones never updated. -
15
GMO asks Japan to use its new cyber powers
GMO Internet, a large Japanese web company, asked Japan's government on Saturday to use new cyber defence powers against hackers who broke into one of its services.
[12] The powers took effect on 1 October, and let police and Japan's Self-Defense Forces break into attackers' servers and disable them.[12] The hackers hit Onamae.com Desktop Cloud, which rents out servers to people who trade currencies by machine.[12] They then demanded money, threatening to keep placing trades through accounts at over 70 trading firms.[12] GMO says it will not pay.[12] Why it matters — GMO says this would be the first use of the powers, though it is not on the law's list of critical operators, Impress Watch reports.
[12] GMO will pay 5,000 yen, about $32, to every current customer and is closing the service for good.[12]
A strong check often keeps a weaker way round it, and attackers take that way
Companies keep an easier path beside a strict check, for lost devices or busy weeks, and attackers look for that path first.
The twist
LiteLLM's approval account was locked to a device in its office, so nobody far away could steal it. The attacker never needed it, because that week any two engineers could approve a release instead.
The picture
How it works
- A company sets a strict check, like an approval locked to one office device
- It keeps an easier path beside it for lost devices or busy weeks
- The easier path is used less, so fewer people watch it
- An attacker who cannot pass the strict check looks for the easier path
- The strict check never gets the chance to stop them
The same force, elsewhere today
Where this chain is also running, in today's other stories.
-
Fake Okta pages and YubiKeys
The fake pages ask YubiKey users to switch to a text or email code, and that works only where the company still allows those codes as a fallback.
-
52 billion stolen cookies
A website checks the password and second code once, then gives the browser a cookie so it need not ask again, and a thief with that cookie can often skip both checks.
-
Chrome asks before unprotected pages
Chrome used to open unencrypted pages without asking unless a user had chosen its strongest safety mode, and now it asks every user first.
Where you've seen this
Office buildings
a guarded front door, and a side door propped open for deliveries
Bank accounts
a strong password, reset by a helpline that accepts a date of birth
Shops
tags that beep at the front exit, and a staff exit with no scanner
The catch
Some easier path is always needed, because people lose devices and urgent fixes must ship. What decides the risk is whether anyone watches that path as closely as the strict one.
And the whole of it
An engineer who wanted faster releases and a shopper who stays logged in each made a fair choice for their own week. An attacker sees all those choices together, and each person sees only their own.
What is really going on
LiteLLM's attacker needed no new trick: a master key LiteLLM meant to cancel in May still worked in October, and a release rule loosened that same week let two stolen logins publish poisoned software.
Who gains
-
LiteLLM's attacker
— An unlimited token taken with the old key gave owner-level access to every LiteLLM project on GitHub.
[1] -
Phishing crews aiming at YubiKey users
— Wherever company rules still allow text or email codes, a fake Okta page can ask for one instead of the hardware key.
[10] -
Buyers of stolen browser cookies
— NordVPN counts 52 billion such cookies online, and each open session lets a buyer in without the password.
[11] -
People browsing on shared Wi-Fi
— Chrome now stops to ask before opening an unencrypted page, for every user by default.
[10]
Who pays
-
Teams that installed LiteLLM 1.107.0
— BleepingComputer says their machines should be rebuilt from clean backups and every key on them changed.
[4] -
Developers using Bun, Python or Envoy
— Each program carries its own copy of Brotli, so each needs its own update and a restart.
[6] -
Owners of programs on Ruby 3.2 or older
— Ruby will not fix those versions, so the only cure is moving to a newer one.
[8] -
More than 4,500 Bluesky users
— Their accounts were taken over and are suspended until they contact Bluesky.
[10]
What nobody knows yet
Open questions from across today’s stories — ours included.
-
01
Whether the keys stolen from LiteLLM's systems and its users' machines were used.
Wiz saw stolen Amazon keys used about four and a half hours after the theft.
[3] LiteLLM is still cancelling every token, and has not said what was done with the rest.[1] -
02
How the attacker found the May key.
LiteLLM says the file was overwritten quickly but has not said who saw it, or when, before that.
[1] -
03
Which of LiteLLM's two accounts of the break-in is complete.
Its first account pointed to tokens leaking into its logs through Claude Code.
[3] Its second traces the break-in to the May master key.[1] -
04
How many of the 49,000 downloads ran the poisoned code.
The figure is an estimate of downloads, not of machines where Python started with it installed.
[3] -
05
Whether the Brotli flaw can take over real systems.
Imperva ran code on one unpatched Node.js build and has not released how.
[6] Google rates the flaw 9.2 out of 10, Red Hat 8.1, and CISA recorded no attacks on 23 October.[6] -
06
How many other Ruby programs turn outsiders' text into search patterns.
Ruby has not given the bugs ID numbers of its own, so tools that check by number list only GitLab.
[8] -
07
Who ran the Bluesky phishing, and how many owners are back in.
Bluesky has given a count of accounts taken over, but no attacker and no recovery figure.
[10] -
08
Whether other Chinese coding models behave like Qwen3-Coder.
Hirundo tested one model, and Booz Allen Hamilton's similar finding in May came from its own tests.
[10]
Security firms spotted LiteLLM's poisoned release within six minutes of it going online, and PyPI pulled it in under two hours.
Also true today
- Chrome now asks before opening any web page that is not encrypted, for every user, not only those who chose its strongest safety mode.
- Ruby fixed the three bugs behind four critical GitLab flaws, and none of the four was on the US list of flaws known to be used in attacks.
- CISA's check on 23 October found no attacks using the Brotli flaw, two days after Node.js and Google shipped fixes.
More from Cybersecurity
Across the beats