TeamPCP, de bedreigingsacteur achter de recente compromissen van Trivy en KICS, heeft nu een populair Python-pakket met de naam litellm gecompromitteerd, waarbij twee kwaadaardige versies zijn gepusht die een credential harvester, een Kubernetes lateral motion toolkit en een persistente achterdeur bevatten.
Meerdere beveiligingsleveranciers, waaronder Endor Labs en JFrog, onthulden dat litellm-versies 1.82.7 en 1.82.8 op 24 maart 2026 werden gepubliceerd, waarschijnlijk als gevolg van het gebruik van Trivy door het pakket in hun CI/CD-workflow. Beide achterdeurversies zijn sindsdien uit PyPI verwijderd.
“De payload is een aanval in drie fasen: een credential harvester die SSH-sleutels, cloudreferenties, Kubernetes-geheimen, cryptocurrency-wallets en .env-bestanden verzamelt; een Kubernetes-toolkit voor laterale verplaatsing die geprivilegieerde pods op elk knooppunt inzet; en een aanhoudende systemd backdoor (sysmon.service) die ‘checkmarx(.)zone/raw’ peilt naar extra binaire bestanden, ‘zei Endor Labs-onderzoeker Kiran Raj.
Zoals we in eerdere gevallen hebben gezien, worden de verzamelde gegevens geëxfiltreerd als een gecodeerd archief (“tpcp.tar.gz”) naar een command-and-control-domein met de naam “models.litellm(.)cloud” via een HTTPS POST-verzoek.
In het geval van 1.82.7 is de kwaadaardige code ingebed in het bestand “litellm/proxy/proxy_server.py”, waarbij de injectie wordt uitgevoerd tijdens of na het wielbouwproces. De code is ontworpen om te worden uitgevoerd tijdens het importeren van de module, zodat elk proces dat “litellm.proxy.proxy_server” importeert de payload activeert zonder enige gebruikersinteractie te vereisen.
De volgende iteratie van het pakket voegt een “agressievere vector” toe door een kwaadaardige “litellm_init.pth” in de root van het wiel op te nemen, waardoor de logica automatisch wordt uitgevoerd bij elke opstart van Python-processen in de omgeving, en niet alleen wanneer litellm wordt geïmporteerd.
Een ander aspect dat 1.82.8 gevaarlijker maakt, is het feit dat de .pth-launcher een onderliggend Python-proces voortbrengt via subprocess.Popen, waardoor de payload op de achtergrond kan worden uitgevoerd.
“Python .pth-bestanden die in sitepakketten worden geplaatst, worden automatisch door site.py verwerkt bij het opstarten van de tolk”, aldus Endor Labs. “Het bestand bevat een enkele regel die een subproces importeert en een losstaand Python-proces start om dezelfde Base64-payload te decoderen en uit te voeren.”
De payload wordt gedecodeerd naar een orkestrator die een credential harvester en een persistentie dropper uitpakt. De harvester maakt ook gebruik van het Kubernetes-serviceaccounttoken (indien aanwezig) om alle knooppunten in het cluster op te sommen en voor elk daarvan een geprivilegieerde pod te implementeren. De pod chroot vervolgens naar het hostbestandssysteem en installeert de persistentie-dropper als een systemd-gebruikersservice op elk knooppunt.
De systemd-service is geconfigureerd om een Python-script (“~/.config/sysmon/sysmon.py”) te starten – dezelfde naam die wordt gebruikt in het Trivy-compromis – dat elke 50 minuten contact opneemt met “checkmarx(.)zone/raw” om een URL op te halen die verwijst naar de payload van de volgende fase. Als de URL youtube(.)com bevat, breekt het script de uitvoering af – een kill switch-patroon dat gebruikelijk is bij alle incidenten die tot nu toe zijn waargenomen.
“Deze campagne is vrijwel zeker nog niet voorbij”, aldus Endor Labs. “TeamPCP heeft een consistent patroon aangetoond: elke gecompromitteerde omgeving levert inloggegevens op die het volgende doel ontsluiten. De overstap van CI/CD (GitHub Actions runners) naar productie (PyPI-pakketten die in Kubernetes-clusters draaien) is een doelbewuste escalatie.”
Met de nieuwste ontwikkeling heeft TeamPCP een meedogenloze supply chain-aanvalscampagne gevoerd die vijf ecosystemen heeft voortgebracht, waaronder GitHub Actions, Docker Hub, npm, Open VSX en PyPI, om zijn targetingvoetafdruk uit te breiden en steeds meer systemen onder controle te krijgen.

“TeamPCP escaleert een gecoördineerde campagne gericht op beveiligingstools en open source ontwikkelaarsinfrastructuur, en eist nu openlijk de eer op voor meerdere vervolgaanvallen op ecosystemen”, aldus Socket. “Dit is een duurzame operatie die zich richt op punten met een hoge hefboomwerking in de softwaretoeleveringsketen.”
In een bericht op hun Telegram-kanaal zei TeamPCP: “Deze bedrijven zijn gebouwd om uw toeleveringsketens te beschermen, maar ze kunnen hun eigen toeleveringsketens niet eens beschermen. De stand van het moderne veiligheidsonderzoek is een grap, met als resultaat dat we nog een hele tijd terrabytes (sic) aan bedrijfsgeheimen zullen stelen met onze nieuwe partners.”
“Het sneeuwbaleffect hiervan zal enorm zijn. We werken al samen met andere teams om de chaos te bestendigen. Veel van je favoriete beveiligingstools en open-sourceprojecten zullen de komende maanden het doelwit zijn, dus houd het in de gaten”, voegde de bedreigingsacteur eraan toe.
Gebruikers wordt geadviseerd de volgende acties uit te voeren om de dreiging in te dammen:
- Controleer alle omgevingen op litellm-versies 1.82.7 of 1.82.8 en ga indien gevonden terug naar een schone versie
- Isoleer de getroffen gastheren
- Controleer op de aanwezigheid van malafide pods in Kubernetes-clusters
- Bekijk netwerklogboeken voor uitgaand verkeer naar “models.litellm(.)cloud” en “checkmarx(.)zone”
- Verwijder de persistentiemechanismen
- Controleer CI/CD-pijplijnen op het gebruik van tools als Trivy en KICS tijdens de compromisperiodes
- Trek alle openbaar gemaakte referenties in en roteer deze
“De open source-toeleveringsketen stort in zichzelf in”, zei Gal Nagli, hoofd van de risicoblootstelling bij Wiz, eigendom van Google, in een post op X. “Trivy wordt gecompromitteerd → LiteLLM wordt gecompromitteerd → inloggegevens van tienduizenden omgevingen komen in handen van aanvallers → en die inloggegevens leiden tot de volgende compromittering. We zitten vast in een lus.”