In December 2025, npm implemented significant changes to its authentication processes following the Sha1-Hulud incident, aiming to bolster defense against supply chain attacks. While these updates mark progress, npm projects remain vulnerable to certain threats. This article outlines the modifications made and explores potential security measures for the Node.js community.
The Core Issue: Token Vulnerabilities
Historically, npm utilized classic tokens—long-lasting credentials that could be exploited if compromised. Such tokens enabled attackers to release malicious versions of packages without needing publicly verifiable source code, making npm a target for supply chain attacks. Incidents like Sha1-Hulud and others have highlighted these vulnerabilities.
Recent Security Enhancements
In response, npm has transitioned from classic tokens to session-based credentials. These are short-lived and obtained through npm login with a default setting of multi-factor authentication (MFA) for publishing. Additionally, npm advocates for OIDC Trusted Publishing, where Continuous Integration (CI) systems use temporary credentials for each session, reducing exposure to risks from secrets stored at rest.
These modifications enhance security by enforcing swift expiration of credentials and necessitating a second authentication factor for critical operations. However, challenges remain in fully securing the ecosystem.
Outstanding Security Concerns
The initial attack on npm was propelled by an MFA phishing attempt, where attackers deceived maintainers into divulging login credentials and one-time passwords. This suggests that short-lived tokens could still be exploited in similar future campaigns, allowing for quick malware uploads.
Furthermore, the optional nature of MFA for publishing means developers can still create 90-day tokens with MFA bypass, mirroring the previous classic tokens. Such configurations risk unauthorized access, enabling malicious package releases.
While increased MFA adoption is promising, optional OIDC and MFA for publishing do not entirely resolve the inherent security issues.
Strategic Recommendations for Improved Security
To enhance open-source security, several recommendations are proposed. Firstly, promoting widespread OIDC adoption could significantly hinder supply chain attacks due to its robust security features. Secondly, mandating MFA for local package uploads via email codes or one-time passwords could mitigate threats from vulnerabilities like Shai-Hulud by preventing MFA bypass.
Finally, incorporating metadata in package releases would enable developers to assess and avoid insecure packages, fostering a more secure ecosystem.
Conclusion and Future Outlook
npm’s shift away from permanent tokens and improvement of default settings marks a pivotal advancement in securing supply chains. However, until short-lived, identity-bound credentials become standard and MFA bypass is eliminated, risks from compromised build systems persist. Embracing practices like building packages from verified source code, as demonstrated by Chainguard, can further reduce exposure to threats.
Incorporating these security layers, akin to the ‘Swiss cheese model,’ will provide comprehensive protection. Organizations are encouraged to adopt a combination of these measures for optimal security.
