Defender flags the exe in a rea-tools copy of the REA repo
According to a GitHub issue on REA, a fake rea-tools repo offered a Windows exe that 8 of 45 VirusTotal engines flag, with 172 downloads. The copy shipped a binary and no npm package was reported, so the npx risk is a next-attack scenario; two checks on repo name and creation dates would have caught this one.
The Engineer · Build desk
8 of 45 VirusTotal engines flagged the archive offered by the fake rea-tools repo, according to the GitHub issue, which also reports 172 downloads of the archive.
- Engines flagging the archive, claim 2 8 of 45 VirusTotal engines 18% computed
Engines flagging the archive The rest of the 45
| Share | Part | Whole | Percent | Claim |
|---|---|---|---|---|
| Engines flagging the archive | 8 VirusTotal engines | 45 VirusTotal engines | 18% (computed) | 2 |
What happened
- The copy reused REA's README and added a "Windows Standalone .exe" section pointing at an 82.6 MB archive, according to the issue.
- Microsoft Defender detects Trojan:Script/Wacatac.B!ml in the archive and Trojan:Win32/Wacatac.B!ml in the extracted rea-x64.exe.
- The maintainer closed the issue the same day with PR #2429, and the README now names morluto/rea, rea.tools and the rea-agents npm package as official sources.
Why it matters
- What doesn't add up contradiction The incident shipped a Windows exe, yet most of the checklist built on it targets the npx path. Only two of its eight checks apply to this copy.
- Who has to decide decision Before pasting an MCP config line from a thread, the repo and package names have to come from the project's own README or site and be compared character by character.
- What it limits constraint npm provenance shows which repo and workflow built a package but cannot certify its contents, so the decision to run the code stays with the person running it.
The incident and the checklist built on it cover different install paths. The copy's README sent readers to a downloadable Windows archive [8]. The DEV Community post says checks 1 and 2 alone catch the rea-tools copy, and that the other six cover the npm package a config pulls with npx, a path the copy did not take [3]. It reports no look-alike npm package and does not say how many of the 172 downloads were run [2].
So the evidence supports a narrow reading: a copied README pointing at a binary. Defender flags both the archive and the extracted exe [1]. Thirty-seven of the 45 VirusTotal engines did not [21]. A scan score is thin ground for trust at that ratio. Repository dates and publisher identity are better evidence, and the post puts it this way: "A lookalike copies the README. The dates and the publisher are harder to copy." [5]
Check 1 is string comparison. Take the repo and package names from the project's own README or site and compare them character by character with what is in your config [6]. After the issue, REA's maintainer added a line to the README saying that "a similar repository name or copied README does not establish that a download is official." [12]
Check 2 is the one that fits this case. The rea-tools organization was created three days before the issue was opened [22] and held one repository [9]. REA's real repo had about 145,000 stars within days, according to Kunal Ganglani on October 12, and has more than 280,000 now [10]. The post describes "an org created three days before you found it, holding one repo of a tool with six-figure stars" as the shape the REA issue described [4]. The GitHub API returns a repo's creation date, fork status and parent, and GET /orgs/{org} returns the org's created_at and public_repos count [13]. Because a copy pushed up as a new repository reports fork: false, the creation dates tell you more than the fork flag does [14].
The npm path is where the remaining checks sit. The repository field in package.json is written by the publisher, so anyone can claim any repo there [15]. Provenance is stronger. The latest tag, rea-agents@6.5.0 as of October 16, carries a provenance attestation and was published by GitHub Actions through trusted publishing [16]. That tells you which repo and workflow built the tarball [18]. npm's docs state the limit: provenance "does not guarantee the package has no malicious code." [17]
To check a package and everything it pulls in, the post installs into a scratch folder with --ignore-scripts and then runs npm audit signatures [19]. The flag matters because, according to npm's documentation on scripts, the preinstall, install, postinstall and prepare hooks fire on npm install -g as well [20].
In our view the two checks that apply to this incident are the ones with evidence behind them. The other six guard a path this copy did not take, and the ones shown cost a scratch folder and a few commands.
What to watch
- Whether any look-alike npm package for REA or another MCP server is reported, since that is the path the post's other six checks cover.
- The status of the rea-tools repo and its 82.6 MB archive, and whether the VirusTotal count moves from 8 of 45.
- Whether other MCP server maintainers add a README line naming official sources, as REA's maintainer did in PR #2429.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence50
- Adoption
- Not scored
- Hype gap+10
- Incentives30
- Confidence55
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
Microsoft Defender flags the archive as Trojan:Script/Wacatac.B!ml and the extracted rea-x64.exe as Trojan:Win32/Wacatac.B!ml.
- [2]
8 of 45 VirusTotal engines flagged the archive, and it had 172 downloads.
- [3]
Checks 1 and 2 alone catch the rea-tools copy, which shipped a Windows .exe; the other six cover the path the copy did not take, the npm package your config pulls with npx.
- [4]
An org created three days before you found it, holding one repo of a tool with six-figure stars, is the shape the REA issue described.
- [5]
"A lookalike copies the README. The dates and the publisher are harder to copy."
- [6]
Check 1: take the package name and repo from the project's own README or site, then compare them character by character with what is in your config.
- [7]
On October 13, 2026, a user opened issue #2424 on REA, the open-source MCP server and CLI for coding agents, reporting that a fake repo, rea-tools/rea, distributes a trojan Windows exe.
- [8]
According to the issue, the rea-tools copy reused REA's README and added a "Windows Standalone .exe" section pointing at an 82.6 MB archive.
- [9]
The rea-tools organization was created on October 10 and held that one repository; its name echoes REA's real site, rea.tools.
- [10]
REA had about 145,000 GitHub stars within days of going viral (Kunal Ganglani, October 12) and has more than 280,000 on the repo now.
- [11]
The maintainer closed the issue the same day with PR #2429; the README now says "Get REA from morluto/rea, rea.tools, or the rea-agents npm package."
- [12]
The updated REA README says that "a similar repository name or copied README does not establish that a download is official."
- [13]
The GitHub REST API returns a repo's creation date, whether it is a fork, and its parent; GET /orgs/{org} returns the org's own created_at and its public_repos count.
- [14]
A copy pushed as a fresh repo shows fork: false, so the dates carry more weight than the fork flag.
- [15]
The repository field in package.json is written by the publisher, and anyone can claim any repo there, so on its own it proves nothing.
- [16]
The registry record for rea-agents@6.5.0, the latest tag as of October 16, 2026, carries a provenance attestation and was published by GitHub Actions through trusted publishing.
- [17]
npm's docs state that provenance "does not guarantee the package has no malicious code."
- [18]
Provenance tells you which repo and workflow built the tarball.
- [19]
To verify a package and everything it pulls in, install it into a scratch folder with npm install --ignore-scripts, then run npm audit signatures.
- [20]
npm's scripts docs list preinstall, install, postinstall and prepare among the hooks that also run on npm install -g.
- [21]
37 of the 45 VirusTotal engines did not flag the archive.
- [22]
The rea-tools organization was created three days before the issue was opened.
Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.
Sources
1 independent publisher whose own reporting we read for this story.
- dev.toBefore You npx an MCP Server: 8 Checks That Would Have Caught the Fake REA Repo
1 article · October 16, 2026
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.
Topics
- MCP Server SecurityFollow
- Software Supply Chain SecurityFollow
- npm package provenanceFollow