Mirage Kitten ships Node.js RATs through fake LinkedIn coding challenges
Kaspersky found two cross-platform JavaScript RATs, NodeRabbit and PollCat, reaching engineers in aviation and fintech through fake recruiters, from a group that until now shipped native C, C++ and Go.
The Watch · Security desk
What happened
- Kaspersky documented two previously undocumented cross-platform RATs attributed to Mirage Kitten: NodeRabbit, built with Node.js for Windows, Linux and macOS, and PollCat, written in obfuscated JavaScript.
- Three NodeRabbit variants sharing a code lineage came off systems in Afghanistan, Egypt and Ethiopia, with Kaspersky rating the Egyptian and Ethiopian samples the more advanced of the set.
- The infection chain starts with fake recruiter accounts on LinkedIn and other job search platforms sending targets a trojanized coding challenge archive presented as a technical assessment.
- One recovered archive, Front-Technical-Challenge.zip with MD5 1EA83E4E4592B01E4ACAB63EB867BEE5, was hosted in an Amazon S3 bucket named oracle-challenge.
- Kaspersky calls this the group's first publicly documented Node.js and JavaScript malware, after years of native C, C++ and Go payloads dropped by DLL search-order hijacking.
Why it matters
- Who's exposed exposure The first machine touched is an engineer's workstation holding source and credentials, reached by a direct message rather than by anything facing the internet, in sectors Kaspersky names as aviation and fintech.
- What it limits constraint Bundling the payload inside the archive keeps npm out of the defence path entirely: there is no published package for a dependency scanner to flag or for a registry takedown to remove.
- What's now possible capability An AI code-review pass becomes a cheap detection control for stranger-supplied projects, which is a plausible reason the lure's instructions ban one outright.
- Who has to decide decision Security teams now have to rule on whether a candidate may run an employer-supplied project on a corporate endpoint at all, because running it is the task the recruiter set.
Next story · Security · Oct 6
Malicious indexed-btree package moves npm malware from install scripts to first useConfirmed2 publishers
The control failure worth studying is in the README. TaskFlow shipped as a software engineering assessment built with Express, React and Vite, and the instructions told the candidate to review the app and fix defects in the frontend while asserting that server.js was bug-free and should not be modified [6]. server.js was the only application source file the attackers had altered [6]. The same README set a three-hour time limit and forbade the use of AI assistants [7]. All three instructions pushed scrutiny away from the same file [22].
The chain under it is short. The first line of server.js imported a package named colorized_terminal, pinned to version 2.1.0 [16]. The attackers bundled that package directly into the archive's node_modules directory instead of publishing it [17]. On import, it silently launched node_modules/.cache/.320697f1/index.js as a detached background process [18].
Kaspersky's initial access section rests on two kinds of evidence. The archive, its MD5 and the S3 URL came from telemetry, as did the three infected hosts [15][3]. The recruiter detail, an actor posing as a talent acquisition specialist at a major technology company and pressuring the target to download and run the project immediately, comes from a publicly cited post rather than from Kaspersky's own data, and Kaspersky says that post matches the delivery chain it reconstructed [11][12].
There is a caveat on scope. The report is framed around aviation and fintech across the Middle East and Africa [10], while the three recovered variants sat on hosts in Afghanistan, Egypt and Ethiopia [3], so one of the three is outside the stated region [21]. Read the region as where the telemetry landed, not as the boundary of the campaign.
For hunting, the surface is narrow. Kaspersky saw two trojanized package names across the three variants, colorized_terminal and pretty-log, both pinned to 2.1.0 [4], and detects the family as Trojan.JS.MirageKitten.* [19]. Kaspersky says PollCat, which has a substantially different structure and arrived through a separate coding challenge lure, will be analysed later in the same research [13]. Both sets of artifacts live where the interview did: a project directory on an engineer's workstation, with the interpreter already installed because the task required it.
What to watch
- Kaspersky's promised PollCat analysis, and whether it shares command and control infrastructure with NodeRabbit.
- Any appearance of colorized_terminal or pretty-log on the public npm registry, which would turn bundled delivery into a live registry supply-chain problem.
- Victims outside Afghanistan, Egypt and Ethiopia, which would show whether aviation and fintech is the campaign or only the visible slice.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence70
- Adoption
- Not scored
- Hype gap+15
- Incentives35
- Confidence65
Perspective Coverage
4 publishers- Builder
- Builder 45%
- Operator
- Operator 49%
- Investor
- Investor 6%
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
Kaspersky, while monitoring Mirage Kitten activity, uncovered a previously undocumented malware family it dubbed NodeRabbit, a cross-platform remote access trojan built with Node.js that targets Windows, Linux and macOS.
- [2]
During the same investigation Kaspersky discovered a second previously undocumented family, PollCat, also a cross-platform RAT but written in obfuscated JavaScript and also distributed through trojanized coding challenge archives.
- [3]
Kaspersky identified the first NodeRabbit sample on a system in Afghanistan, and threat hunting revealed two additional, more advanced variants, one on a system in Egypt and another on a system in Ethiopia.
- [4]
Retrospective hunting identified three NodeRabbit variants with a shared code lineage, each recovered from a system in a different country, delivered through similarly themed coding challenges using two trojanized packages, colorized_terminal and pretty-log, both pinned to version 2.1.0.
- [5]
Operators deliver NodeRabbit through spear-phishing messages on LinkedIn and other job search platforms that contain trojanized coding challenge archives, with the infection chain beginning with fake recruiter accounts contacting prospective targets.
- [6]
The archive contained TaskFlow, a software engineering assessment app built with Express, React and Vite; the README instructed the candidate to review the application and fix defects in its frontend and claimed server.js was bug-free and should not be modified, directing attention away from the only application source file the attackers had altered.
- [7]
The README also imposed a three-hour time limit and prohibited the use of AI assistants.
- [8]
Mirage Kitten has historically relied on native malware written in languages such as C, C++ and Go, often deployed through DLL search-order hijacking; Kaspersky calls NodeRabbit and PollCat the first publicly documented use of Node.js- and JavaScript-based malware by this APT group.
- [9]
The first NodeRabbit variant was concealed within the TaskFlow assessment and executed by the trojanized colorized_terminal package on the affected system in Afghanistan.
- [10]
Kaspersky's report describes Mirage Kitten as targeting aviation and FinTech sectors across the Middle East and Africa with a new malware set.
- [11]
According to a publicly cited source, a threat actor posing as a talent acquisition specialist at a major technology company contacted a software engineer, advertised a job opening, sent a link to a coding challenge hosted on Amazon S3, and pressured the target to download and run the project immediately.
- [12]
Kaspersky says the public post matches the delivery chain it reconstructed from its own telemetry: recruiter outreach on a job search platform, a coding challenge presented as a technical assessment, and a trojanized project archive hosted on legitimate cloud infrastructure.
- [13]
PollCat has a substantially different structure from NodeRabbit, was delivered through a separate coding challenge lure, and Kaspersky says it will be analysed later in the same research.
- [14]
Kaspersky notes that an AI code-review assistant tasked with auditing the project would likely have flagged the suspicious first-line import of an unknown npm package and warned the targeted developer that the project was trojanized.
- [15]
The archive Front-Technical-Challenge.zip, MD5 1EA83E4E4592B01E4ACAB63EB867BEE5, was hosted in an Amazon S3 bucket at oracle-challenge.s3.us-east-1.amazonaws.com.
- [16]
The first line of server.js imported a trojanized npm package named colorized_terminal, version 2.1.0.
- [17]
The attackers bundled the trojanized package directly in the challenge archive's node_modules directory rather than publishing it to the npm registry.
- [18]
When imported, the trojanized package silently launched an implant from node_modules/.cache/.320697f1/index.js as a detached background process.
- [19]
Kaspersky's products detect this threat as Trojan.JS.MirageKitten.*
- [20]
Because the trojanized packages were bundled in the archive and never published to the npm registry, there is no registry artifact for dependency scanners or registry takedowns to act on, leaving detection to the endpoint.
- [21]
One of the three host countries where NodeRabbit variants were recovered sits outside the Middle East and Africa scope stated in Kaspersky's report title.
- [22]
The README carried three separate instructions that each reduced the chance the candidate would inspect server.js: do not modify it, finish within three hours, and do not use AI assistants.
Sources
4 independent publishers whose own reporting we read for this story.
- securelist.comMirage Kitten targeting aviation and FinTech sectors across the Middle East and Africa with a new malware set
1 article · September 1, 2026
- securityaffairs.comIran-linked APT Mirage Kitten Uses Fake Job Tests to Spread Malware
1 article · September 2, 2026
- thehackernews.comIranian Hackers Pose as Recruiters to Deliver Cross-Platform RATs Through Coding Tests
1 article · September 1, 2026
- therecord.mediaIranian cyber spies target aviation, fintech developers with new malware
1 article · September 1, 2026
Topics and entities
Topics
- Recruitment-themed social engineering
- Software Supply Chain Security
- State-sponsored cyberespionage
- Remote Access Trojans