Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in joule-btp-extension (PyPI)

Malicious code was published in joule-btp-extension on PyPI (version 0.1.6). The package contained code to exfiltrate system information, establish reverse shells, and communicate with domains associated with malicious activity. The incident appears to have been an internal test accidentally uploaded to a public repository.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Unknown; limited to users who installed the malicious version(s)
Ecosystems
Attack vectors
Affected entities
  • joule-btp-extension · 0.1.6

The joule-btp-extension package on PyPI contained malicious code that performed multiple harmful actions upon installation. According to analysis, the package exfiltrated basic system information (such as IP address and username) and attempted to establish a reverse shell for remote command execution.

The OpenSSF Package Analysis project confirmed the malicious nature of version 0.1.6, identifying communication with domains associated with malicious activity. The incident was categorized as a likely pentest or internal testing scenario that was inadvertently published to the public PyPI repository.

The package has been identified and flagged by both security researchers (kam193) and the OpenSSF malicious packages database, with the campaign identifier 2026-08-joule-btp-extension.

Indicators of compromise

Packages
  • joule-btp-extension==0.1.6

Remediation

  • Remove joule-btp-extension from all systems where it was installed
  • Audit systems that installed the package for signs of compromise, including reverse shell activity and data exfiltration
  • Review network logs for connections to the malicious domains identified by OpenSSF
  • Change credentials and secrets on any affected systems
  • Monitor for unauthorized command execution or lateral movement

Sources

  1. GitHub Advisory GHSA-x6f9-9m8h-q98m · GitHub Advisory Database

Cite this entry

"Malicious code in joule-btp-extension (PyPI)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 11, 2026; last updated August 11, 2026. https://supplychainattack.org/incident/malicious-code-in-joule-btp-extension-pypi-yh2dsh

Suggest a correction

Found an error or have a newer source? Corrections to factual errors take priority over new entries.

  1. resolvedhigh

    Malicious code in kb-ai (PyPI)

    The kb-ai package on PyPI contained malicious code designed to demonstrate a dependency confusion attack. The package exfiltrated basic system data (IP address, username) and executed arbitrary code during installation via setup.py override.

    PyPICompromised packageDependency confusion
  2. resolvedcritical

    Malicious code in @years19/n8n-nodes-utils-helper-c (npm)

    The npm package @years19/n8n-nodes-utils-helper-c contained a malicious postinstall script that downloads a trojanized Python multidict module from an attacker-controlled server and injects it into the system's Python site-packages directory, enabling arbitrary code execution on any subsequent Python invocation.

    npmPyPICompromised packageMalicious commit
  3. containedcritical

    Malicious code in @years19/n8n-nodes-utils-helper-d (npm)

    The npm package @years19/n8n-nodes-utils-helper-d contained malicious code that downloads and executes a Python DDoS/offensive-tooling dropper on installation. The package impersonates a legitimate n8n community node but performs unauthorized system reconnaissance and beacons host identity to an attacker-controlled endpoint.

    npmPyPICompromised packageTyposquatting
  4. resolvedcritical

    Malicious code in @years18/n8n-nodes-utils-helper-y (npm)

    The npm package @years18/n8n-nodes-utils-helper-y contained malicious code in its postinstall hook that downloads and executes attacker-controlled Python toolkits (mhddos, pyroxy-full, impacket), persists them in the user's Python site-packages, and exfiltrates host information to an attacker-controlled endpoint. Installation triggers immediate code execution and establishes persistence.

    npmPyPICompromised package