Supply chain · pip · High

Critical Malicious Package 'pytablute' in PyPI Downloads Second-Stage Code

Threat Engine Auto-Feed · data current as of 2026-08-10

The 'pytablute' package (version 1.0.3) in the PyPI ecosystem contains hidden, obfuscated code that executes upon import or use. This code downloads and executes a second-stage payload, establishing a persistent connection to a remote host for further command execution, posing a critical supply-chain risk.

  • Package: pip / pytablute
  • Affected versions: = 1.0.3
  • Severity: critical
  • Reach: unknown
  • Exposure: 65/100 (High)

What happened — Malicious package

The 'pytablute' package, specifically version 1.0.3, was identified as containing malicious code. This code is designed to run covertly when the library is imported or used, initiating a multi-stage attack by downloading and executing additional malicious code from a remote source.

How the attack works

This is a malicious package attack where a seemingly legitimate library is compromised with hidden, obfuscated code. Upon installation and execution, the initial malicious code establishes an outbound connection to download and execute a secondary payload. This second stage then maintains a persistent connection to a remote command-and-control server, allowing an attacker to issue further commands and potentially execute arbitrary code on the compromised system.

Who's exposed

Profiles most at risk

  • Development teams using the PyPI ecosystem
  • Organizations with CI/CD pipelines that pull unpinned or latest versions of dependencies
  • Any system or application that has installed 'pytablute' version 1.0.3

Conditions that increase exposure

  • Unpinned dependencies in project manifests (e.g., requirements.txt without specific versions)
  • Lack of dependency lockfiles (e.g., poetry.lock, Pipfile.lock) or not enforcing their use
  • Use of internal package mirrors that do not vet or scan for malicious packages
  • Automated build processes that install dependencies without prior security checks

Blast-radius scenarios

  • An attacker gains remote code execution capabilities on systems where the package is installed.
  • Sensitive data could be exfiltrated from compromised build environments or production systems.
  • The compromised system could be used as a pivot point for further attacks within the network.
  • System integrity could be compromised through unauthorized modifications or deployment of additional malware.

What to do (defensive)

Detect

  • Scan dependency trees for 'pytablute' version 1.0.3 in all projects.
  • Monitor network traffic for suspicious outbound connections from build systems or applications that use PyPI packages.
  • Implement software composition analysis (SCA) tools to identify known malicious packages.
  • Review package integrity and provenance, looking for unexpected code or obfuscation.

Contain

  • Immediately isolate any systems found to have 'pytablute' version 1.0.3 installed.
  • Block network connections to known command-and-control infrastructure associated with this campaign (if available).
  • Revoke credentials that may have been exposed on compromised systems or build environments.
  • Temporarily halt builds or deployments that rely on PyPI if comprehensive scanning is not yet in place.

Remediate

  • Remove 'pytablute' version 1.0.3 from all affected environments and replace with a known-good, vetted alternative if functionality is required.
  • Perform a thorough forensic analysis on any system that installed the malicious package to identify the extent of compromise.
  • Update dependency management practices to pin all package versions and utilize lockfiles.
  • Implement or enhance automated security scanning for all third-party dependencies before they are integrated into projects.

Frontier verdict — High

Prioritize immediate detection and removal of 'pytablute' version 1.0.3 due to its critical remote code execution capabilities.

Sources

For detection-engineering and awareness only · point-in-time · not security advice · sourced from the GitHub Advisory Database.