TeamPCP vergiftigt Python-libraries via supply chain-aanval

maandag, 18 mei 2026 (17:26) - Techzine

In dit artikel:

Hackergroep TeamPCP plaatste recent twee kwaadaardige versies van de Python-library LiteLLM op PyPI (versies 1.82.7 en 1.82.8) nadat ze via een gecompromitteerde Trivy-release toegang hadden gekregen tot het publicatietoken van LiteLLM. De aanvallers hadden Trivy, een veelgebruikte open-source vulnerability scanner, gekaapt door commits van echte maintainers te spoofen en een malafide build door de release-pijplijn te laten lopen, waarna die build werd verspreid naar GitHub Releases, Docker Hub en Amazon ECR. Omdat LiteLLM Trivy in zijn CI/CD-pipeline gebruikte, kon de geïnfecteerde Trivy-binary het geheugen van de runner uitlezen en zo het PYPI_PUBLISH-token ontvreemden, waarmee de malwarepakketten direct op PyPI werden gepubliceerd buiten de officiële broncode om.

LiteLLM fungeert als gateway naar meer dan honderd LLM-providers (onder andere OpenAI, Anthropic en Azure). Die centrale positie maakte de library een aantrekkelijk doel: een succesvolle compromittering biedt toegang tot API-sleutels van meerdere AI-diensten tegelijk. Onderzoek van Hunt.io wees uit dat er toen ruim 33.000 internet-facing LiteLLM-instanties actief waren. De kwetsbaarheid kreeg CVE-2026-33634 en een hoge CVSS-score van 9.4.

De twee malafide versies gebruikten verschillende infectiemechanismen. 1.82.7 injecteerde een Base64-gecodeerde payload in proxy_server.py die bij het opstarten van de LiteLLM-proxy werd uitgevoerd. 1.82.8 werkte subtieler: die versie plaatste een .pth-bestand in site-packages zodat de malware bij elke start van een Python-interpreter actief werd, ook zonder expliciete import van LiteLLM. De payload draaide in drie fasen: eerst het verzamelen van omgevingsvariabelen en configuratiebestanden (API-sleutels voor OpenAI/Anthropic/Azure, cloud-credentials voor AWS/GCP/Azure, en lokale bestanden zoals ~/.kube/config en ~/.aws/credentials), vervolgens het versleutelen van de buit met AES-256-CBC en het exfiltreren als tpcp.tar.gz naar een C2-server via curl, en ten slotte het installeren van een persistente backdoor (PERSIST_B64) die elke ~50 minuten nieuwe instructies ophaalde.

Aanbevelingen voor getroffen organisaties: zoek naar geïnstalleerde LiteLLM-versies 1.82.7/1.82.8 en verdachte .pth-bestanden, roteer en herroep alle gekompromitteerde API- en cloud-sleutels, onderzoek CI/CD-runners op geheugenexfiltratie en compromise, schakel of beperk PyPI-publicatietokens en voer forensisch onderzoek uit op netwerktrafiek naar mogelijke C2-domeinen. De zaak illustreert opnieuw het risico van kettingreacties in de software-supply-chain: compromitteer één tool in de pijplijn en kwaadwillenden kunnen verderop in de keten enorme schade aanrichten.