Legacy Python Bootstrap Scripts Enable Domain Takeover Risk in PyPI Packages
Security researchers have identified a vulnerability in legacy Python packages distributed via PyPI, stemming from outdated bootstrap scripts that reference the now-defunct domain python-distribute[.]org. These scripts, associated with the zc.buildout tool, automate the download and installation of dependencies, including the obsolete 'Distribute' package, by fetching installation scripts from the aforementioned domain. Since the domain is currently up for sale and managed for ad revenue, an attacker who acquires it could serve malicious code to any environment executing these legacy bootstrap scripts, potentially compromising the software supply chain.
The affected packages include widely used libraries such as tornado, pypiserver, slapos.core, roman, xlutils, and testfixtures, among others. While the vulnerable code is largely unused in modern development, it may still be present in legacy production environments, posing a latent risk. The issue highlights the ongoing dangers of abandoned infrastructure and the importance of auditing dependencies and installation scripts, especially in open-source ecosystems where legacy code may persist unnoticed.

Get ahead of threats like this
Mallory correlates global threat intelligence with your attack surface — know if you’re exposed before adversaries strike.
How this story unfolded
5 events from the most recent confirmed update back to the earliest known activity.
ReversingLabs published PoC and affected-package details
As part of the disclosure, ReversingLabs released a proof of concept and shared affected package names and script hashes as indicators to help defenders identify exposure. The researchers noted no known exploitation of this specific issue.
ReversingLabs disclosed PyPI domain-takeover supply chain risk
ReversingLabs researchers identified and publicly disclosed that legacy Python bootstrap scripts could enable a supply chain attack if an attacker acquired `python-distribute.org` and served malicious code to users who manually ran the scripts.
Legacy PyPI packages retained vulnerable bootstrap scripts
Over time, multiple Python packages continued shipping old `distribute_setup.py` or `bootstrap.py` code that fetched and executed content from the abandoned domain, including `slapos.core` and development versions of Tornado.
python-distribute.org domain became available for sale
The `python-distribute.org` domain, still hard-coded in legacy Python bootstrap scripts, has reportedly been available for purchase since 2014, creating the possibility of a future domain-takeover supply chain attack.
Distribute bootstrap script became obsolete after setuptools integration
The legacy `distribute_setup.py` mechanism was rendered obsolete in 2013 after Distribute was merged back into setuptools, but the bootstrap pattern remained embedded in some projects.
Related entities
Vulnerabilities, threat actors, malware, products, organizations, and breaches Mallory has linked to this story.
Sources
3 references tracked. Mallory keeps watching after this page renders.
Domain takeovers possible with legacy Python bootstrap script flaw
scworld.com
Open sourceLegacy Python Bootstrap Scripts Create Domain-Takeover Risk in Multiple PyPI Packages
thehackernews.com
Open sourceBootstrap script exposes PyPI to domain takeover attacks
reversinglabs.com
Open sourceSee the full picture, correlated to your attack surface.
Map indicators from this story to your assets and identify affected systems in minutes.
Every observed campaign, victim, and pivot linked to actors named in this story.
Malware, exploits, and IOCs connected to the activity described here.
YARA, Sigma, and Snort rules deployed to your SIEM as soon as they’re published.
Get matching new stories delivered to your team as they break — not the next morning.
Ask questions about this story and take action on the answers.


