Skip to content

Security Independently confirmed3 publishers 2 min read Published Updated

Checkmarx finds malicious npm package function-flag still installable after 37,000 downloads

Checkmarx says function-flag, malicious since July 2025 and downloaded more than 37,000 times, is still on npm with no advisory flagging it. Advisory-based scanners have nothing to match, so finding it means checking lockfiles for the campaign's eight names.

The Watch · Security desk

Send a correction

Illustration accompanying Checkmarx finds malicious npm package function-flag still installable after 37,000 downloads
Generated illustration

What happened

  • The operator behind MALFEX has published 12 npm packages since August 2023, eight of them malicious, with more than 40,000 downloads between them.
  • Open Source Vulnerabilities (OSV) has published advisories for six of the eight malicious packages.
  • Checkmarx traced three delivery paths with no shared infrastructure between them, all tied to the same actor.

Why it matters

  • What it limits constraint Teams relying on advisory feeds get no alert for function-flag, and OSV-based tools miss function-color too, so detection depends on matching package names directly.
  • What it limits constraint A blocklist entry for one function-flag payload host protects against a single release, since each version pulls from its own location.
  • Who's exposed exposure Windows hosts with a direct install are the exposed population, and the documented payloads hand the operator keystrokes, a remote shell and browser and wallet data.
  • Who has to decide decision With no legitimate package depending on these names, a dependency tree that lacks a direct install of all eight needs no further work for this campaign.

The five packages already removed from the registry all have OSV entries [18]. The gaps are on the three still live. Function-flag and function-color are not on the OSV list, and the cdn-img-fetch entry covers two of that package's four malicious versions [17][12]. Function-flag accounts for about nine-tenths of the campaign's reported downloads [16].

According to Checkmarx, function-flag is the campaign's longest-running delivery path [14]. Each malicious version ships its own downloader, and each downloader fetches its payload from a different location [14]. Blocking one payload host covers one release [20]. The install finishes even when the download fails [15]. On macOS and Linux the routine fails silently, so only Windows machines get a working payload [15].

The other two paths run at different stages. The first runs obfuscated scripts during npm install on Windows, macOS and Linux, though its Overlord RAT payload works only on Windows [7]. Overlord gives the operator screen capture, keylogging, window monitoring, a remote shell, file search and a hidden desktop [8]. The second path runs when the package is loaded and drops movinlike, a Node.js stealer aimed at eight Discord clients, seven browsers and cryptocurrency wallets [9]. Turning off install scripts addresses the first path and leaves the second untouched [19].

One operator has run MALFEX, Checkmarx's name for the campaign, since August 2023 [2][3]. Its three paths share no infrastructure [13]. Checkmarx describes the reach as narrow and untargeted. "No legitimate or widely used packages depend on any operator package, so exposure is limited to systems that installed these package names directly. We found no geographic or organizational targeting; anyone who installs the stealer becomes a target," Checkmarx wrote [10].

The eight malicious names are tlxbnhd, tldriver, mxdriver, img-to-native, native-runner, cdn-img-fetch, function-flag and function-color [11][5]. A scanner that matches dependencies against advisories has no entry for function-flag. A name search across lockfiles and install logs will find it [21]. The Windows-only limit is reported for the Overlord payload and for function-flag, not for movinlike [7][15][9].

What to watch

  • Whether the registry pulls function-flag, function-color and cdn-img-fetch, and whether OSV adds function-flag and function-color and extends the cdn-img-fetch entry to all four malicious versions.
  • A new function-flag release; each version so far has carried its own downloader and payload location, so a fresh publish would show the operator still working that path.
  • Any report of a legitimate package taking a dependency on one of the operator's packages, since that would extend exposure past direct installs.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence70
Adoption20
Hype gap+15
Incentives55
Confidence68

Perspective Coverage

3 publishers
Builder
Builder 43%
Operator
Operator 50%
Investor
Investor 7%
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    Malicious packages published as part of the campaign have accumulated over 40,000 downloads, according to Checkmarx.

    Reported Supported Source: Checkmarx, via SecurityWeekView cited source
  2. [2]

    The campaign, dubbed MALFEX, distributes malware such as the Overlord RAT and infostealers.

    Reported Supported Source: Checkmarx, via SecurityWeekView cited source
  3. [3]

    The campaign has been ongoing since August 2023, when the threat actor published its first package.

    Reported Supported Source: Checkmarx, via SecurityWeekView cited source
  4. [4]

    The threat actor has published 12 packages, eight of which are malicious.

    Reported Supported Source: Checkmarx, via SecurityWeekView cited source
  5. [5]

    Five of the malicious packages have been removed from the registry; three were still installable as of October 1: function-flag, function-color and cdn-img-fetch.

    Reported Supported Source: Checkmarx, via SecurityWeekView cited source
  6. [6]

    Function-flag has been malicious since July 2025, has more than 37,000 downloads, and no advisory flags it as malicious.

    Reported Supported Source: Checkmarx, via SecurityWeekView cited source
  7. [7]

    The first path involves Overlord RAT loaders and obfuscated scripts executed during npm install; the scripts can launch on Windows, macOS and Linux, but the payload only works on Windows.

    Reported Supported Source: Checkmarx, via SecurityWeekView cited source
  8. [8]

    The Overlord RAT provides screen capture, keylogging, window monitoring, remote shell access, file search and a hidden desktop.

    Reported Supported Source: Checkmarx, via SecurityWeekView cited source
  9. [9]

    In the second path, malicious code executes when the package is loaded and drops the Node.js information stealer movinlike, which targets eight Discord clients, seven popular browsers and cryptocurrency wallets.

    Reported Supported Source: Checkmarx, via SecurityWeekView cited source
  10. [10]

    "No legitimate or widely used packages depend on any operator package, so exposure is limited to systems that installed these package names directly. We found no geographic or organizational targeting; anyone who installs the stealer becomes a target."

    Reported Supported Source: Checkmarx, quoted by SecurityWeekView cited source
  11. [11]

    OSV advisories have been published for six malicious packages: tlxbnhd, tldriver, mxdriver, img-to-native, native-runner and cdn-img-fetch.

    Reported Supported Source: SecurityWeekView cited source
  12. [12]

    The OSV entry for cdn-img-fetch covers only two of its four malicious iterations.

    Reported Supported Source: SecurityWeek, citing CheckmarxView cited source
  13. [13]

    Checkmarx identified three independent delivery paths that do not share infrastructure but are linked to the same threat actor.

    Reported Supported Source: Checkmarx, via SecurityWeekView cited source
  14. [14]

    The third path is the longest-running part of the campaign: each malicious version of function-flag contains a separate downloader designed to fetch a payload from a different location.

    Reported Supported Source: Checkmarx, via SecurityWeekView cited source
  15. [15]

    The infection routine lets package installation complete even if the payload download fails; it fails silently on macOS and Linux, so only Windows systems are affected.

    Reported Supported Source: Checkmarx, via SecurityWeekView cited source
  16. [16]

    Function-flag accounts for about nine-tenths of the campaign's reported downloads.

    Derived Supported
  17. [17]

    Two of the three still-installable packages, function-flag and function-color, have no OSV advisory.

    Derived Supported
  18. [18]

    The five malicious packages removed from the registry are tlxbnhd, tldriver, mxdriver, img-to-native and native-runner, and all five have OSV advisories.

    Derived Supported
  19. [19]

    Disabling npm install scripts addresses the install-time first path but not the second path, which executes when the package is loaded.

    Derived Supported
  20. [20]

    Blocking a single function-flag payload location covers only the version that uses it, because each version fetches from a different location.

    Derived Supported
  21. [21]

    A scanner that matches dependencies against advisories has no entry to flag function-flag, so a direct name search is the way to find it.

    Derived Supported

Sources

3 independent publishers whose own reporting we read for this story.

  1. orca.security

    1 article · October 8, 2026

    Malicious npm Campaign “MALFEX” Delivers RAT and Stealer via Eight Packages with 40,000+ Downloads
  2. securityweek.com

    2 articles · October 6, 2026

    Long-Running NPM Malware Campaign Accumulates 40,000 Downloads - SecurityWeek
  3. thehackernews.com

    1 article · October 7, 2026

    Eight Malicious npm Packages Downloaded 40,767 Times Deliver Overlord RAT and Stealer

Topics and entities