Python Security Takes Center Stage at PyCon US as Open-Source Ecosystem Confronts Supply Chain Vulnerabilities

Security has long been regarded as the digital equivalent of vegetables in software development—universally acknowledged as essential for health, yet routinely sidelined in favor of rapid feature delivery and immediate deadlines. However, a significant paradigm shift occurred at PyCon US, where security graduated from a peripheral concern to a primary pillar of the conference. For the first time in the history of the flagship event, cybersecurity was awarded a dedicated, day-long track, positioned prominently alongside artificial intelligence as one of the twin focal points of the gathering. The standing-room-only attendance underscored a growing realization across the developer community: securing the Python ecosystem is no longer optional.
The watershed moment was driven by a collective of prominent figures at the forefront of Python and open-source defense. Seth Larson, Security Developer in Residence at the Python Software Foundation (PSF) and recently appointed CPython core developer; Juanita Gomez, a doctoral researcher specializing in open-source security at the University of California, Santa Cruz, who co-chaired the track; and Mike Fiedler, Safety and Security Engineer for the Python Package Index (PyPI), formed the nucleus of this initiative. Together with host Michael Kennedy on Episode 556 of Talk Python To Me, recorded in July 2026, these experts used the thematic arc of the conference’s security track to evaluate the current health and vulnerability of the Python ecosystem.
The Evolution of Open-Source Stewardship and Full-Time Defense
The integration of full-time security personnel marks a critical maturation phase for Python infrastructure. Historically reliant entirely on the goodwill of decentralized volunteers, the Python ecosystem has increasingly recognized that modern threat vectors require dedicated, professional oversight. Mike Fiedler’s role at PyPI, now approaching its third year, exemplifies this transition. While volunteer maintainers remain the lifeblood of open source, the sheer volume of daily package uploads and the sophistication of automated attacks demand continuous, professional monitoring.
This professionalization introduces a delicate balance within the community. When central organizations hire full-time engineers, volunteer contributors occasionally step back, operating under the assumption that paid staff will shoulder the burden. Yet, given the vast scale of PyPI—which manages over a million user accounts and tens of millions of daily downloads—full-time engineering teams are perpetually resource-constrained. The resulting dynamic requires a hybrid approach: building automated defenses and community-driven muscle simultaneously, ensuring that volunteers are empowered rather than replaced.
Anatomy of a Supply Chain Attack: The PyPI Phishing Incident
The security track opened with a stark reminder of the persistent threats targeting package maintainers. In his presentation titled "Anatomy of a Phishing Campaign," Mike Fiedler detailed a sophisticated, targeted attack against PyPI maintainers that highlighted the human element as a primary vector for supply chain compromise.
Unlike traditional, indiscriminate phishing campaigns that rely on "spray-and-pray" tactics, this operation was meticulously tailored. Attackers harvested publicly available email addresses from GitHub profiles and package metadata. They then deployed look-alike domains—such as substituting a lowercase ‘i’ with a ‘j’ in "PyPI"—to trick maintainers into entering their credentials on proxy websites mirroring the package repository.
Out of more than a million accounts, only four individuals fell for the deception, and four user accounts were compromised. Crucially, the attackers leveraged one of those compromised accounts to target num2words, a sub-dependency of Hugging Face’s widely utilized transformers library, which records tens of millions of downloads daily. By successfully injecting malicious code into an upstream dependency, the threat actors gained a potential foothold in downstream applications across the global artificial intelligence landscape.
The incident exposed the limitations of traditional Time-Based One-Time Passwords (TOTP). Because TOTP authentication generates session cookies that can be intercepted or reused within a valid window, attackers who successfully proxy a login session can bypass secondary codes and generate long-lived API tokens without expiration dates. In response, PyPI implemented enhanced security measures, such as invalidating sessions when IP addresses change abruptly, while heavily advocating for phishing-resistant authentication methods like WebAuthn and passkeys, which render credential-harvesting proxies ineffective.
Dependency Cooldowns and the Quest for Secure Defaults
As the Python ecosystem grapples with the velocity of supply chain injections, developers are increasingly turning to defensive operational strategies, most notably dependency cooldowns. Popularized by modern package managers such as Astral’s uv and explored heavily throughout the PyCon security track, cooldowns introduce a mandatory time buffer—ranging from three to seven days—before a newly published package version is eligible for automatic installation.
Proponents argue that this delay acts as an effective circuit breaker. Statistical analysis of past malware incidents reveals that the vast majority of malicious packages are detected, reported by automated scanners or volunteer researchers like Kamil Mancowski, and quarantined within a week of publication. By forcing development environments to wait out this window, developers can drastically reduce their exposure to zero-day typosquatting and account-takeover attacks without manually vetting every dependency update.
However, implementing cooldowns as a universal default introduces technical friction. Developers managing complex build pipelines frequently encounter conflicts when automated vulnerability scanners flag an older dependency version with a known CVE, while the newly released patched version falls inside the restricted cooldown window. Balancing secure defaults with developer ergonomics remains one of the primary engineering challenges for tooling maintainers.
Zero Trust Architecture and Enterprise Compliance
Moving beyond basic package management, the PyCon security track also addressed the realities of enterprise and government compliance. In their presentation "Zero Trust in 200 Milliseconds: Identity Per Transaction," Tristan MacKinnon explored how organizations operating under strict federal frameworks, such as the Federal Risk and Authorization Management Program (FedRAMP), must adapt their Python applications to meet zero-trust mandates.
The core premise centers on eliminating static, long-lived API credentials in favor of ephemeral, per-transaction identity validation. By ensuring that applications request short-lived access tokens dynamically for every microservice interaction or cloud resource call, organizations dramatically shrink the attack surface available to malicious actors. While introducing architectural complexity and latency considerations, these practices represent the future of secure cloud-native Python deployment, particularly in regulated sectors.
The Cultural and Technical Frontier: Rewriting CPython in Rust
Perhaps the most forward-looking discussion of the conference centered on memory safety and language interoperability. In her presentation, Emma Smith examined the ongoing push to integrate Rust into CPython, the reference implementation of the Python programming language.
Memory safety vulnerabilities, such as buffer overflows and use-after-free errors, have historically plagued languages implemented in C and C++. By rewriting select standard library modules—starting with foundational components like zlib—the Python community is cautiously exploring whether memory-safe languages can harden the language runtime against entire classes of exploits.
Yet, the barrier to adoption is as much cultural as it is technical. CPython is maintained by a dedicated community of C developers. Asking a core development team to adopt a new systems programming language requires navigating complex governance structures, building new tooling pipelines, and overcoming institutional inertia. Nevertheless, the willingness of the Python community to engage in these foundational debates signals an unprecedented commitment to long-term architectural security.
Software Bill of Materials (SBOMs) and Runtime Introspection
The conference also tackled the complexities of transparency and accountability through Software Bill of Materials (SBOMs). Presentations by student researchers Sanchit Saye and Abhishek Reddy Palle highlighted both the promise and the current inaccuracies of automated SBOM generation tools in Python build pipelines.
Complementing this, a session by Hala Ali and Andrew Case introduced post-incident runtime SBOM generation, examining Python memory management to construct accurate inventories of loaded modules and functions while an application is executing. This runtime introspection allows security teams to verify whether an application is actively invoking vulnerable code paths, moving beyond static dependency lists to provide actionable threat intelligence during incident response.
Conclusion and Industry Call to Action
The inaugural security track at PyCon US 2026 demonstrated a profound cultural evolution within the Python ecosystem. Security is no longer viewed merely as an academic pursuit or an afterthought delegated to enterprise compliance teams; it is recognized as a fundamental pillar of open-source sustainability.
As experts like Larson, Gomez, and Fiedler emphasized, securing Python requires a multi-layered commitment. For individual developers, immediate actions—such as auditing GitHub actions with tools like Zizmor, migrating to trusted publishing mechanisms on PyPI, and purging obsolete API tokens—are essential. For organizations and enterprises profiting from open-source infrastructure, the mandate is clear: financial and engineering support must flow upstream. Only through sustained investment in foundational security tooling can the Python ecosystem hope to outpace an increasingly sophisticated threat landscape.







