Los hackers del grupo TeamPCP comprometieron hoy el paquete Telnyx en el Python Package Index (PyPI), subiendo versiones maliciosas que descargan malware robador de credenciales oculto dentro de un archivo WAV. El ataque a la cadena de suministro fue detectado por las firmas de seguridad Aikido, Socket y Endor Labs, y atribuido a TeamPCP por el mismo patrón de exfiltración y clave RSA observados en incidentes previos realizados por el mismo actor.
TeamPCP es responsable de múltiples ataques recientes a la cadena de suministro (como el escáner de vulnerabilidades Trivy de Aqua Security y la biblioteca LiteLLM de Python) y de ataques wiper dirigidos a sistemas iraníes. Hoy, el actor de amenazas publicó las versiones 4.87.1 y 4.87.2 del paquete Telnyx con código malicioso.
En sistemas Linux y macOS, la versión maliciosa descarga malware que roba claves SSH, credenciales, tokens en la nube, billeteras de criptomonedas, variables de entorno y otros secretos. En Windows, el malware se instala en la carpeta de inicio para persistencia y se ejecuta en cada inicio de sesión.
El paquete Telnyx es el kit de desarrollo de software (SDK) oficial de Python para integrar servicios de comunicación de Telnyx como VoIP, mensajería (SMS, MMS, WhatsApp), fax y conectividad IoT. Es muy popular, con más de 740,000 descargas mensuales en PyPI.
Los investigadores creen que los hackers accedieron al proyecto usando credenciales robadas de la cuenta de publicación en PyPI. Inicialmente, TeamPCP publicó la versión 4.87.1 a las 03:51 UTC, pero tenía un payload malicioso no funcional; lo corrigieron una hora después con la versión 4.87.2 a las 04:07 UTC.
El código malicioso se encuentra en el archivo 'telnyx/_client.py' y se activa automáticamente al importar el paquete, mientras permite que las clases legítimas del SDK funcionen normalmente. En Linux y macOS, el payload inicia un proceso separado que descarga una segunda etapa disfrazada de archivo WAV (ringtone.wav) desde un servidor de comando y control (C2).
Mediante esteganografía, el actor de amenazas incrustó código malicioso en las tramas de datos del archivo sin alterar el audio. El payload se extrae con una rutina de descifrado XOR simple y se ejecuta en memoria para recolectar datos sensibles. Si Kubernetes está presente, el malware enumera secretos del clúster y despliega pods privilegiados en los nodos para acceder a los sistemas host subyacentes.
En Windows, el malware descarga un archivo WAV diferente (hangup.wav) que extrae un ejecutable llamado msbuild.exe. Este se coloca en la carpeta de inicio para persistencia, con un archivo de bloqueo que limita la ejecución a intervalos de 12 horas.
Los investigadores advierten que la versión 4.87.0 de Telnyx SDK es la variante limpia sin alteraciones. Se recomienda a los desarrolladores revertir a esta versión si encuentran las versiones 4.87.1 o 4.87.2 en sus entornos. Cualquier sistema que haya importado las versiones maliciosas debe considerarse completamente comprometido, ya que el payload se ejecuta en tiempo de ejecución y puede haber exfiltrado datos sensibles; se recomienda rotar todos los secretos lo antes posible.