A security researcher went looking for suspicious activity on GitHub and found approximately 10,000 repositories distributing Trojan malware — not by exploiting a vulnerability, not by compromising a supply chain, but by the oldest trick in the open-source playbook: cloning legitimate projects, stuffing the README with malicious download links, and waiting for someone to click. The campaign had been running for months. GitHub’s automated detection systems noticed nothing. The malware scored zero detections on VirusTotal when submitted as a link. This is not a sophisticated nation-state operation. This is the digital equivalent of photocopying someone’s business card and writing your phone number on the back, and it worked at industrial scale.
🤚 The Open-Palm Discovery
The discovery, published on June 18, 2026 by the researchers at Orchid Files, began when the author noticed cloned versions of their own repositories receiving suspicious updates. What followed was a methodical investigation that revealed a campaign of staggering simplicity and troubling scope:
- ~10,000 GitHub repositories were identified distributing malicious archives
- The attack targets newly created repositories that rank highly in GitHub search results
- Attackers clone legitimate repos, then repeatedly update the README files with links to malicious zip archives
- Each repository is updated 1 to 24 times per day, with every commit using the identical message: “Update README.md”
- The malicious zip files contain four files, including loader.exe and luajit.exe, plus supporting libraries
- When submitted as URLs to VirusTotal, the archives returned zero detections — though scanning the actual zip file did reveal the Trojan
The researcher built a script to analyze GitHub event archives, filtering for repositories matching the campaign’s fingerprint: frequent updates, README-only modifications, multiple contributors, and that telltale 1-to-24-daily-update cadence. The result was a list of ten thousand repositories that had been quietly poisoning GitHub’s search results for months.
👐 The Two-Handed Audit
Let us appreciate the elegance of this attack’s mediocrity. There is no zero-day exploit here. No cryptographic bypass. No supply chain compromise where a maintainer’s npm credentials were stolen via a phishing campaign that impersonated a cryptocurrency exchange. This is a clone-and-paste operation running at volume, and it evaded platform detection by being so profoundly unremarkable that no algorithm flagged it.
The commit message — “Update README.md” — is the single most common commit message on GitHub. It is the plain white van of version control. If you wanted to design a string that would disappear into the noise of a platform hosting over 420 million repositories, you could not do better than “Update README.md” repeated twenty-four times a day.
And the VirusTotal evasion is particularly instructive. When security tools scanned the URL, they found nothing. When they scanned the actual file, the Trojan appeared. This means the malware is hosted behind a delivery mechanism that only serves the payload under certain conditions — a technique that turns the internet’s most popular malware scanner into a character witness. “VirusTotal says it’s clean” is about to become the new “it worked on my machine.”
🌿 The Gentle Awakening
There is a persistent fantasy in software development that open source is self-policing. That the “many eyes” of the community will catch malicious code. That a platform with millions of developers serves as its own immune system.
This fantasy has now been contradicted by ten thousand repositories that did nothing more sophisticated than copy someone’s homework and add a link to malware. No eyes caught it. No automated system flagged it. The campaign was discovered by one person who noticed their own project had been cloned and thought, “That’s odd.”
GitHub, to its credit, has the unenviable task of moderating a platform where “fork this repo and modify it” is the entire value proposition. The line between a legitimate fork and a malicious clone is, in many cases, a single README edit. But ten thousand repositories updating daily with identical commit messages for months? That’s not a needle in a haystack. That’s a haystack made entirely of needles, and nobody checked whether the hay was real.
👑 The Gold-Leaf Reckoning
The broader lesson here is uncomfortable: GitHub’s trust model is fundamentally incompatible with its scale. The platform was designed in an era when repositories were maintained by humans who cared about their reputation. In 2026, repositories can be created, populated, and updated by bots at a rate that makes human moderation impossible and automated detection perpetually one step behind.
This is the same problem that plagued app stores, browser extension marketplaces, and npm registries before it. Every platform that allows user-generated content eventually becomes a distribution network for malware, and the response is always the same: review processes that catch 95% of threats and allow the remaining 5% to operate at a scale that makes the 95% figure meaningless.
For developers, the advice is the same as it has always been: do not download executables from GitHub repositories you found via search. Do not trust a README that links to an external zip file. Do not assume that a repository with recent commits and multiple contributors is legitimate, because in 2026, both of those signals can be manufactured for the cost of a bot script and a DigitalOcean droplet.
And for GitHub: if one independent researcher with a script can find ten thousand malicious repos by filtering for obvious patterns, one has to wonder what a $7.5 billion Microsoft subsidiary with access to the entire event archive could have found if it had looked.
“The commit message was ‘Update README.md.’ The update was malware. The detection count was zero. We have achieved perfect operational security through the radical innovation of being boring.” — The Slap of Wisdom Repository Review Board, mass-starring its own projects to feel something