Compromised Telnyx PyPI Package Distributes Credential-Stealing Malware
A threat actor compromised the PyPI package `telnyx`, uploading malicious versions 4.87.1 and 4.87.2 containing credential-stealing malware that exfiltrates data to a C2 server.
On March 27, 2026, the telnyx Python package on PyPI was compromised by TeamPCP, resulting in the distribution of malicious versions 4.87.1 and 4.87.2. The attacker, having gained unauthorized access to PyPI credentials, bypassed the legitimate GitHub release pipeline to upload these compromised packages directly. These versions contain malware designed to harvest sensitive credentials from infected systems and exfiltrate them to a command-and-control (C2) server. The malicious packages were available for approximately 6 hours before being quarantined by PyPI. Version 4.87.1 contained a typo preventing execution, making 4.87.2 the fully functional malicious version. This incident highlights the risk of supply chain attacks targeting open-source package repositories, potentially affecting any system that installed the telnyx package during the exposure window.
Attack Chain
- The attacker gains unauthorized access to PyPI credentials for the
telnyxpackage. - The attacker uploads malicious versions 4.87.1 and 4.87.2 of the
telnyxpackage to PyPI, bypassing the legitimate GitHub repository. - When a user installs or upgrades to the malicious
telnyxpackage, the injected malware withintelnyx/_client.pyexecutes upon importing the library (import telnyx). - On Linux/macOS systems, the malware spawns a detached subprocess to ensure persistence and downloads a payload hidden inside a WAV audio file (
ringtone.wav) from the C2 server athttp://83.142.209.203:8080/. - The downloaded payload harvests sensitive credentials, including SSH keys, AWS/GCP/Azure credentials, Kubernetes tokens, Docker configurations, .env files, database credentials, and crypto wallets.
- If Kubernetes access is detected, the malware deploys privileged pods to all nodes for lateral movement within the Kubernetes cluster.
- The collected data is encrypted using AES-256-CBC and RSA-4096, then exfiltrated to the C2 server, identified by the header
X-Filename: tpcp.tar.gz. - On Windows, a binary payload hidden in
hangup.wavis downloaded fromhttp://83.142.209.203:8080/, dropped asmsbuild.exein the Startup folder for persistence, and executed with a hidden window, polling the endpointhttp://83.142.209.203:8080/raw.
Impact
The compromise of the telnyx PyPI package poses a significant risk to developers and organizations that use the library. Successful exploitation leads to the theft of sensitive credentials, potentially granting the attacker unauthorized access to critical infrastructure, cloud resources, and sensitive data. TeamPCP’s previous campaign against LiteLLM and the similarities in this attack suggest a pattern of targeting open-source projects to infiltrate developer environments and steal secrets. The impact includes potential data breaches, financial losses, and reputational damage. The exposure window was approximately 6 hours during which vulnerable versions were available.
Recommendation
- Immediately check for the presence of malicious
telnyxpackage versions (4.87.1 or 4.87.2) in your environment using the provided commands and uninstall them (pip uninstall telnyx). - Due to the credential-stealing nature of the malware, rotate all potentially exposed secrets, including SSH keys, cloud provider credentials (AWS, GCP, Azure), Kubernetes tokens, Docker registry credentials, database passwords, API keys in .env files, and Telnyx API keys.
- Check for persistence mechanisms used by the malware, specifically the
audiomonservice and associated files on Linux/macOS, and themsbuild.exeexecutable in the Startup folder on Windows, based on the file paths provided in the “Filesystem” section. - Block the identified C2 IP address (
83.142.209.203) and payload URLs (http://83.142.209.203:8080/ringtone.wav,http://83.142.209.203:8080/hangup.wav,http://83.142.209.203:8080/raw) at your network perimeter. - Deploy the following Sigma rule to detect the creation of
msbuild.exein the Startup folder. - Pin the
telnyxpackage to the safe version 4.87.0 in your project dependencies to prevent future installations of compromised versions.
Detection coverage 2
Detect MsBuild.exe in Startup Folder (Telnyx Compromise)
highDetects the creation of msbuild.exe in the Startup folder, a persistence mechanism used in the compromised Telnyx package attack.
Detect Network Connection to Telnyx Compromise C2
highDetects network connections to the C2 IP address (83.142.209.203) used in the compromised Telnyx package attack.
Detection queries are kept inside the platform. Get full rules →
Indicators of compromise
3
hash_sha256
1
ip
3
url
| Type | Value |
|---|---|
| ip | 83.142.209.203 |
| url | http://83.142.209.203:8080/ringtone.wav |
| url | http://83.142.209.203:8080/hangup.wav |
| url | http://83.142.209.203:8080/raw |
| hash_sha256 | 7321caa303fe96ded0492c747d2f353c4f7d17185656fe292ab0a59e2bd0b8d9 |
| hash_sha256 | cd08115806662469bbedec4b03f8427b97c8a4b3bc1442dc18b72b4e19395fe3 |
| hash_sha256 | 4eceb569b4330565b93058465beab0e6d5ea09cfba8e7f29d7be1b5a2abd958a |