TeamPCP-Linked Malware Found in Trojanized Telnyx Python SDK Releases

· Original article ↗

Summary

Socket and independent researchers confirmed that Telnyx Python SDK versions 4.87.1 and 4.87.2 on PyPI contained credential-harvesting malware. PyPI quarantined them; users should downgrade and rotate exposed credentials.

Key points

  • Telnyx Python SDK versions 4.87.1 and 4.87.2 were trojanized; version 4.87.0 is identified as the clean baseline.
  • Malicious code in src/telnyx/_client.py runs when the package is imported, giving it access to the importing application's runtime environment.
  • The Windows path downloads a payload and places msbuild.exe in the Startup folder for persistence; the initial 4.87.1 release had a casing bug that was fixed in 4.87.2.
  • The Linux/macOS path retrieves a harvester hidden in WAV files and executes it in memory, then encrypts collected data and sends it to attacker infrastructure.
  • The article links the activity to TeamPCP, citing the tpcp.tar.gz archive name and its association with a broader supply-chain campaign.
  • PyPI quarantined the malicious releases. Users are advised to downgrade to 4.87.0 or earlier, rotate credentials accessible when the package was imported, and check Windows Startup locations for dropped files.

Article Details

Attack Vectors
  • The attacker trojanized telnyx Python SDK versions 4.87.1 and 4.87.2 on PyPI. Malicious code in src/telnyx/_client.py runs when the module is imported.
  • The Windows path downloads hangup.wav, extracts a binary using base64 decoding and 8-byte XOR, and places it in the Startup folder as msbuild.exe. The article reports that the Windows path in version 4.87.1 was disabled by a casing error; version 4.87.2 corrected it.
  • The Linux/macOS path downloads ringtone.wav, extracts a Python harvester using base64 and XOR, and executes it in a detached Python process without writing the harvester to disk.
  • The malware encrypts collected data, packages it as tpcp.tar.gz, and uploads it to the C2 server over HTTP.
Defensive Notes
  • Remove versions 4.87.1 and 4.87.2 and use telnyx 4.87.0 or earlier; verify that internal mirrors and dependency caches have purged the malicious releases.
  • Treat credentials and secrets accessible to processes that imported the compromised versions as exposed, and rotate them, including API keys, tokens, SSH keys, and CI/CD secrets.
  • On Windows, inspect the Startup folder for msbuild.exe, msbuild.exe.lock, and msbuild.exe.tmp. On Linux/macOS, the article warns that the payload may leave no persistent artifacts.
  • Block 83[.]142[.]209[.]203 and review network logs for connections to it on port 8080.
  • Check for import-time malicious code in package modules, not only install-time hooks, and investigate releases that lack corresponding source-control tags or commits.

Indicators of compromise

TypeIndicatorContext
IPV483[.]142[.]209[.]203C2 server used to deliver WAV payloads and receive exfiltrated data over port 8080.
URLhxxp[:]//83[.]142[.]209[.]203:8080/C2 endpoint used to receive the exfiltration bundle via HTTP POST.
URLhxxp[:]//83[.]142[.]209[.]203:8080/hangup.wavC2-hosted WAV payload downloaded by the Windows attack path.
URLhxxp[:]//83[.]142[.]209[.]203:8080/ringtone.wavC2-hosted WAV payload used to deliver the Linux/macOS harvester.

MITRE ATT&CK

Threat Actors

Vendors

Products

Related Articles