Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in xxlsxwriter (PyPI)

Malicious code was distributed in the xxlsxwriter package on PyPI as part of a campaign distributing 900+ malicious packages. The malicious versions installed browser extensions designed to manipulate clipboard contents and replace cryptocurrency wallet addresses.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
900+ malicious packages distributed via PyPI; potential impact on users who installed affected versions
Ecosystems
Attack vectors
Affected entities
  • xxlsxwriterMalicious package distributed via PyPI

An attacker distributed malicious versions of the xxlsxwriter package via PyPI, part of a broader campaign involving 900+ compromised packages. The malicious code installed browser extensions on affected systems with the capability to intercept and manipulate clipboard data and replace cryptocurrency wallet addresses, enabling theft of cryptocurrency transactions.\n\nThe attack was identified and documented by Checkmarx, with credit to the OpenSSF's malicious-packages repository. The incident represents a significant supply chain compromise targeting Python developers and end users who installed the affected package versions.\n\nThis incident demonstrates the risk of typosquatting and package repository compromise, where attackers can distribute malicious code to a large number of users through legitimate-appearing package names.

Indicators of compromise

Packages
  • xxlsxwriter

Remediation

  • Identify and remove any installations of xxlsxwriter from affected systems
  • Scan systems for malicious browser extensions, particularly those with clipboard manipulation capabilities
  • Review browser extension permissions and remove any suspicious extensions
  • Audit cryptocurrency wallet transactions for unauthorized activity
  • Use only verified, legitimate versions of xxlsxwriter from trusted sources
  • Implement package verification and integrity checks in dependency management workflows
  • Monitor PyPI and other package repositories for similar malicious packages

Sources

  1. GitHub Advisory GHSA-j293-gmv9-926q · GitHub Advisory Database

Cite this entry

"Malicious code in xxlsxwriter (PyPI)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed July 21, 2026; last updated July 21, 2026. https://supplychainattack.org/incident/malicious-code-in-xxlsxwriter-pypi-1e0c8u

Suggest a correction

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

  1. containedcritical

    Malicious code in fastapii (PyPI)

    The fastapii package on PyPI is a typosquatting attack imitating the popular FastAPI library. During installation, it executes obfuscated code that downloads and runs a malicious executable, exfiltrating cryptocurrency wallet data and potentially other sensitive information.

    2026 08 FlasqPyPITyposquattingCompromised package
  2. containedcritical

    Malicious code in idnna (PyPI)

    A malicious package named idnna was published to PyPI, imitating a legitimate library. During installation, the package executes obfuscated code that downloads and runs a malicious executable, exfiltrating cryptocurrency wallet data and potentially other sensitive information.

    PyPITyposquattingCompromised package
  3. containedcritical

    Malicious code in pydanticc (PyPI)

    The PyPI package pydanticc is a typosquatting attack imitating the popular pydantic library. During installation, it executes obfuscated code that downloads and runs a malicious executable, exfiltrating cryptocurrency wallet data and potentially other sensitive information.

    2026 08 FlasqPyPITyposquattingCompromised package
  4. containedcritical

    Malicious code in flasq (PyPI)

    A malicious package named flasq was published on PyPI, imitating a popular library. During installation, it executes obfuscated code that downloads and runs a malicious executable, exfiltrating cryptocurrency wallet data and potentially other sensitive information.

    PyPITyposquattingCompromised package