Malicious code in mapkit-loader (npm)
Unscoped npm package 'mapkit-loader' was published as a typosquat targeting the official scoped '@apple/mapkit-loader' package. The malicious package included a postinstall script that beacons to a third-party endpoint (npx-monitor-76056.azurewebsites.net) with a persistent UUID for tracking installations.
- Disclosed
- Last updated
- Blast radius
- Users who mistyped the scoped package name '@apple/mapkit-loader' and installed the unscoped 'mapkit-loader' package instead.
- Ecosystems
- Attack vectors
- Affected entities
- mapkit-loaderUnscoped npm package impersonating @apple/mapkit-loader
The unscoped npm package 'mapkit-loader' was designed to intercept mistyped invocations of the official Apple-scoped package '@apple/mapkit-loader'. The package.json explicitly self-describes as a 'PoC' (proof-of-concept) targeting this name confusion attack.\n\nUpon installation, the package executes a postinstall lifecycle script (postinstall.js) that unconditionally sends an HTTPS POST request to a hardcoded third-party endpoint at npx-monitor-76056.azurewebsites.net/api/pingback. The request includes a persistent UUID, package version, trigger source ('npm-postinstall'), and timestamp. The UUID is stored in ~/.cache/.mapkit-loader-id to enable correlation of subsequent executions back to the attacker's infrastructure.\n\nWhile no credential or filesystem exfiltration was observed, the combination of name-confusion targeting an official Apple scope plus install-time beaconing to an author-controlled endpoint constitutes a supply-chain typosquat with an operational tracking channel. The incident was identified and credited to the OpenSSF malicious-packages project.
Indicators of compromise
- Packages
- mapkit-loader
- Domains
- npx-monitor-76056.azurewebsites.net
Remediation
- Remove the 'mapkit-loader' package from any affected projects immediately
- Use the correct scoped package '@apple/mapkit-loader' instead
- Audit npm install logs and package-lock.json files to identify if the malicious package was installed
- Review any outbound HTTPS connections to npx-monitor-76056.azurewebsites.net in network logs
- Consider using npm package name verification tools and typosquat detection to prevent similar attacks
Sources
- GitHub Advisory GHSA-7x9p-r5gm-5866 · GitHub Advisory Database
Cite this entry
"Malicious code in mapkit-loader (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 19, 2026; last updated August 19, 2026. https://supplychainattack.org/incident/malicious-code-in-mapkit-loader-npm-l63hfd
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- resolvedcritical
Malicious code in create-coin (npm)
create-coin@20.1.1 on npm contained malicious postinstall code that collected sensitive environment variables, credentials, and host reconnaissance data. The package impersonated an esbuild platform build and exfiltrated data to a hardcoded endpoint.
npmCompromised packageTyposquatting - containedcritical
Malicious code in chai-as-testkit (npm)
The npm package chai-as-testkit is a typosquat/impersonation attack delivering obfuscated malicious code that executes on import. The package falsely claims to be a vulnerability management tool but ships pino library files under a different author, with a synthetic stub that loads a 4MB+ obfuscated bundle containing attacker-controlled code.
npmTyposquattingCompromised package - resolvedcritical
Malicious code in @next-fonts/font (npm)
@next-fonts/font is a typosquat package on npm that executes arbitrary attacker-controlled code via a blockchain-mediated C2 channel when its Inter() function is called. The malicious payload is base64-encoded and executed through Node.js spawn or eval, with no legitimate font functionality.
npmTyposquattingCompromised package - resolvedcritical
Malicious code in chai-as-soul (npm)
chai-as-soul@2.3.5 is a typosquat of the pino logging library containing malicious code that exfiltrates environment variables (including AWS/GCP/CI tokens) and executes arbitrary remote code on installation.
npmTyposquattingCompromised package