Malicious code in cc-skills-helper (npm)
The npm package cc-skills-helper (versions 1.0.0–1.0.6) contained malicious postinstall code that acts as a Windows-only supply-chain dropper. Published in a single 8-hour burst on 2026-04-25 by account betatester44676, the package fetches and executes arbitrary Windows PE payloads from attacker-controlled infrastructure with anti-detection evasion techniques.
- Disclosed
- Last updated
- Blast radius
- All users who installed cc-skills-helper versions 1.0.0–1.0.6 on Windows systems during the publication window (2026-04-25).
- Ecosystems
- Attack vectors
- Affected entities
- cc-skills-helper · 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6
The npm package cc-skills-helper was published in seven consecutive versions (1.0.0 through 1.0.6) on 2026-04-25 by npm user betatester44676 (mayukh.halder02@gmail.com). All versions contained identical malicious postinstall behavior designed to execute on Windows systems only.\n\nThe attack chain begins with a postinstall script that invokes activateTool() from lib/index.js. This function fetches a JSON configuration from a hard-coded C2 server at https://kiro-cheap.pro/api/config (configurable via the MY_TOOL_SERVER environment variable). The configuration response includes an archive URL, decryption password, and version number.\n\nThe malware then downloads a password-protected ZIP file from the attacker-controlled archive URL (capped at 500 MiB), decrypts it using the provided password, and verifies the resulting payload as a valid Windows PE executable. The payload is staged in %LOCALAPPDATA%\\cc-skills-helper\\bin\\helper-.exe, a location chosen specifically because it is scanned less aggressively by Windows Defender than %TEMP%. The package employs multiple evasion techniques: writing the payload as .dat first and atomically renaming to .exe immediately before execution to evade real-time scanning, and attempting to add a Defender exclusion via PowerShell if the install runs with elevated privileges.\n\nThe package was abandoned after publication and the latest dist-tag points to version 1.0.6. The incident was disclosed via GitHub Advisory GHSA-q4r7-cr6w-c7xj.
Indicators of compromise
- Packages
- cc-skills-helper
- Domains
- kiro-cheap.pro
Remediation
- Immediately uninstall cc-skills-helper from all systems, especially Windows machines.
- Audit npm install logs and dependency trees to identify all projects that may have installed any version of cc-skills-helper (1.0.0–1.0.6).
- On affected Windows systems, scan for and remove any executable files in %LOCALAPPDATA%\cc-skills-helper\bin\ and check for unexpected processes spawned during npm install.
- Review Windows Defender logs and event logs for suspicious process execution or exclusion additions during the installation window.
- If npm install was run with elevated privileges, verify that no unauthorized Defender exclusions were added.
- Update npm and use `npm audit` to detect any remaining transitive dependencies on cc-skills-helper.
- Consider implementing package pinning and pre-installation verification in CI/CD pipelines to prevent installation of malicious packages.
Sources
- GitHub Advisory GHSA-q4r7-cr6w-c7xj · GitHub Advisory Database
Cite this entry
"Malicious code in cc-skills-helper (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed April 25, 2026; last updated August 13, 2026. https://supplychainattack.org/incident/malicious-code-in-cc-skills-helper-npm-1ckzxv
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- containedcritical
Malicious code in pfp-forms-sme-loan (npm)
The npm package pfp-forms-sme-loan contains malicious code that executes a hidden loader on import, downloading and running platform-specific native payloads from attacker-controlled Cloudflare Workers hosts or reconstructing them via DNS TXT records under well1.site. Any system that imported this package should be considered compromised.
npmCompromised packageMalicious commit - containedcritical
Malicious code in @wololasod/tiny-id (npm)
The npm package @wololasod/tiny-id contained obfuscated malicious code that downloads and executes platform-specific remote executables on Windows and Linux systems. The dropper was embedded in both the main entry point (dist/index.cjs) and the TypeScript types file (dist/index.d.ts), disguised as a tiny ID generator.
npmCompromised packageMalicious commit - resolvedcritical
Malicious code in twilio-hackerone-poc-afe6937c (npm)
The npm package twilio-hackerone-poc-afe6937c contained malicious preinstall/postinstall scripts that exfiltrate host metadata and environment variables to an external webhook, spawn a persistent daemon process, and attempt cross-tenant code injection in shared environments.
npmCompromised packageMalicious commit - resolvedcritical
Malicious code in @velliajs/discord (npm)
@velliajs/discord, a malicious npm package masquerading as a discord.js clone, contained two hostile mechanisms: an unpinned private git dependency with embedded GitHub PAT enabling arbitrary code injection on install, and a hidden runtime kill-switch that gates bot functionality based on a remote allow-list. Two live GitHub Personal Access Tokens were hardcoded in the package.
npmCompromised packageMalicious commit