Malicious code in vtranalytic (PyPI)
The vtranalytic package on PyPI contained malicious code implementing a Telegram-bot-driven remote administration tool that provides full system control to an attacker holding the configured bot token. The package exfiltrates credentials, SSH keys, and arbitrary files via Telegram API, and executes arbitrary shell commands through a documented `run` command.
- Disclosed
- Last updated
- Blast radius
- Any system that installed the vtranalytic package from PyPI
- Ecosystems
- Attack vectors
- Affected entities
- vtranalyticPyPI package implementing Telegram-bot-driven remote administration tool
The vtranalytic package published on PyPI contained intentionally malicious code disguised as a "Complete VPS Control System." The package implements a polling loop that communicates with a Telegram bot API, allowing a remote operator to execute arbitrary system commands and exfiltrate sensitive data from infected systems.
The malicious functionality includes multiple command handlers: the run command executes arbitrary shell commands via subprocess.run; findbot and getallbots handlers traverse the filesystem (including /, /home, /root, /etc, /var/www, /opt, /usr/local, /tmp, and Windows drive roots) searching for and extracting Telegram bot tokens from configuration files; and credential exfiltration handlers (getfile, getdir, findget, getsystem, getconfig, getpasswords, getsshkeys, rdpall) read and upload SSH keys, stored credentials, and arbitrary files to the attacker's Telegram chat.
The package advertised itself as offering 168+ admin commands including user creation and firewall modification, indicating intentional deception. The malicious code was identified by the OpenSSF malicious-packages project and reported through GitHub Security Advisories.
Any system that installed this package had its security compromised, with the attacker gaining remote command execution and credential harvesting capabilities.
Indicators of compromise
- Packages
- vtranalytic
Remediation
- Immediately uninstall the vtranalytic package from all systems: `pip uninstall vtranalytic`
- Revoke or rotate all credentials, SSH keys, and API tokens that may have been present on affected systems
- Review system logs and Telegram bot activity for evidence of unauthorized command execution or data exfiltration
- Scan affected systems for persistence mechanisms or additional malware installed by the remote operator
- Change passwords for all user accounts on affected systems
- Audit firewall rules and user accounts for unauthorized modifications
- Monitor Telegram bot tokens and API keys for unauthorized use
Sources
- GitHub Advisory GHSA-29jr-g2qh-hj97 · GitHub Advisory Database
Cite this entry
"Malicious code in vtranalytic (PyPI)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed July 28, 2026; last updated July 28, 2026. https://supplychainattack.org/incident/malicious-code-in-vtranalytic-pypi-ja21zo
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- containedcritical
TeamPCP Injects Two-Stage Credential Stealer into xinference PyPI Package
The xinference package on PyPI was compromised with a two-stage credential stealer attributed to the TeamPCP threat actor. The malicious code was injected into the package, potentially affecting users who installed compromised versions.
TeamPCPPyPICompromised packageMalicious maintainer - containedhigh
lightning: Obfuscated JavaScript Credential Stealer Bundled in PyPI Wheel
The lightning PyPI package versions 2.6.2 and 2.6.3 were compromised on April 30, 2026, containing obfuscated JavaScript code designed to steal credentials. The project's GitHub account showed signs of compromise, with suspicious responses closing vulnerability reports.
Mini Shai HuludPyPICompromised packageMalicious maintainer - resolvedcritical
Malicious code in xerohub-discord-voice-v3 (npm)
The npm package xerohub-discord-voice-v3 contained malicious code that exfiltrated Discord user authentication tokens to a hardcoded webhook URL controlled by the package author. The startVoiceJoiner() function unconditionally sent raw tokens, usernames, guild IDs, and voice channel IDs to discord.com/api/webhooks/1528726419046404196 before executing any legitimate voice functionality.
npmCompromised packageMalicious maintainer - activecritical
Malicious code in @cap-js/openapi (npm)
The npm package @cap-js/openapi was compromised and found to contain malicious code. The package steals credentials and propagates them to other packages it has access to, with persistence mechanisms. This is attributed to the "Mini Shai-Hulud is back" worm campaign by the TeamPCP threat actor.
Mini Shai HuludTeamPCPnpmCompromised packageMalicious maintainer