TL;DR: A fake Cloudflare Captcha campaign in npm reused identical malicious HTML across 24 packages and leveraged mirrors such as unpkg and yarn to host trusted-looking phishing pages, with each package drawing 50 to 300 weekly downloads before removal, according to OX Security Platform. The pattern shows how package ecosystems can be abused as delivery and storage infrastructure, not just as malware distribution channels, and why identity and URL trust controls now need to cover developer tooling.
Editorial analysis by NHI Mgmt Group, based on content published by OX Security: “ClickFix Phishing Pages Discovered in 24 npm Packages”.
By the numbers:
- 24 distinct malicious packages shared the exact same malicious code.
- each package usually reaching between 50-300 weekly downloads before it gets removed.
Key questions
Q: What fails when package mirrors render attacker-controlled HTML on trusted domains?
A: The control that fails is trust separation.
Q: Why do mirrored package pages create risk even when installation is harmless?
A: Because the malicious value is in the hosted content, not in the install step.
Q: What signs suggest npm mirror abuse is being used for phishing delivery?
A: Look for mirrored .html pages inside package archives, identical web content repeated across multiple packages, obfuscated JavaScript that fetches a remote destination, and browser redirects from secure mirror domains.
Practitioner guidance
- Treat package mirrors as phishing hosts Classify mirror domains such as unpkg, yarn, npmmirror, and tencent as potential phishing destinations when they render mirrored HTML rather than just package archives.
- Add mirror URLs to reputation pipelines Feed mirror domains and mirrored package paths into URL-reputation and web-filtering controls so trusted hostnames do not bypass phishing detection.
- Monitor direct .html requests in proxy logs Look for direct requests to .html files inside mirrored packages and correlate them with package-origin domains to spot browser-based delivery paths.
Bottom line: npm mirror abuse shows that trusted distribution channels can be repurposed into phishing infrastructure without a conventional payload being executed on install.
Explore further
View Full Forum → | NHI Foundation Course → | Our Services → | Read the full analysis →
Mirror trust is now a phishing control problem, not just a software distribution problem. When a package mirror renders HTML directly, the browser inherits the mirror's reputation even though the content came from an untrusted publisher. That breaks the usual assumption that package infrastructure is only a download channel. Practitioners should treat mirrored package content as an input to URL and content-security decisions, not a passive artifact.
A few things that frame the scale:
- Roughly 1 in 3 phishing payloads are delivered outside email, through channels such as social media, search ads and messaging apps.
A question worth separating out:
Q: How should security teams handle mirror domains in phishing and URL controls?
A: They should classify mirrored package domains as web-risk destinations and include them in phishing detection, URL-reputation, and proxy-policy decisions. Mirror domains are not automatically malicious, but they can present attacker-controlled HTML on trusted infrastructure, so the decision has to be based on content and path, not hostname alone.
👉 Read our full editorial: npm mirrors as phishing infrastructure: why this campaign matters