TeamPCP’s Telnyx Supply-Chain Attack Adds WAV Steganography and Windows Persistence

· Original article ↗

Summary

Malicious Telnyx Python SDK versions 4.87.1 and 4.87.2 used WAV steganography to deliver credential-stealing payloads on Linux/macOS and Windows. PyPI quarantined the packages after about 6.5 hours; affected users should downgrade to 4.87.0 and treat importing systems

Key points

  • TeamPCP published malicious Telnyx SDK versions 4.87.1 and 4.87.2 to PyPI on March 27, 2026; PyPI quarantined them after roughly 6.5 hours.
  • Importing the affected package triggered malicious code at module scope, with components split across the package source to hinder inspection.
  • The payload retrieved credential-stealing code hidden in valid WAV files and used XOR decoding.
  • The attack added Windows targeting, installing a disguised msbuild.exe in the user's Startup folder for persistence; Linux/macOS payloads ran detached.
  • Stolen data was encrypted and exfiltrated over plaintext HTTP to a raw IP address, creating network-monitoring opportunities.
  • The article recommends downgrading to Telnyx 4.87.0, treating systems that imported affected versions as exposed, pinning dependencies by hash, and monitoring CI/CD for unexpected audio downloads.

Article Details

Attack Vectors
  • Malicious Telnyx Python SDK versions 4.87.1 and 4.87.2 were published to PyPI without corresponding upstream GitHub commits. Importing the package was sufficient to trigger the payload at module scope.
  • The payload split its components across telnyx/_client.py and used Base64 encoding and obfuscated strings to make malicious code less visible.
  • The Linux/macOS and Windows execution paths downloaded credential-harvesting payloads embedded in WAV files from the C&C server; the WAV data was Base64-decoded and XOR-decoded.
  • On Windows, the downloaded executable was installed as msbuild.exe in the user's Startup folder for boot persistence and launched with CREATE_NO_WINDOW.
  • Stolen data was packaged as tpcp.tar.gz, encrypted using AES-256-CBC and RSA-OAEP, and exfiltrated over HTTP with the X-Filename: tpcp.tar.gz header.
Defensive Notes
  • Downgrade Telnyx installations at versions 4.87.1 or 4.87.2 to the last known clean release, 4.87.0, and treat systems that imported affected versions as exposed.
  • Pin PyPI dependencies by hash and monitor CI/CD environments for unexpected audio file downloads.
  • Hunt for WAV downloads from non-media IP addresses over port 8080, unexpected msbuild.exe binaries in user Startup folders, outbound HTTP requests containing the X-Filename: tpcp.tar.gz header, and attrib +h activity on .lock files.

Indicators of compromise

TypeIndicatorContext
IPV483[.]142[.]209[.]203C&C and payload-delivery server used to host WAV files and receive exfiltration over HTTP.

MITRE ATT&CK

Threat Actors

Vendors

Products

Industries

Related Articles