MAL-2026-16081 Malicious code in @staticj/cropperxmjs (npm)
Malicious package
Published
MAL-2026-16081 is a malicious package: @staticj/cropperxmjs (npm). Every version was published to cause harm.
Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.
Reference: https://insights.sbomify.com/MAL-2026-16081/ (Markdown: https://insights.sbomify.com/MAL-2026-16081/index.md)
- Package
- @staticj/cropperxmjs
- Registry
- npm
What is MAL-2026-16081?
MAL-2026-16081 is a malicious package in @staticj/cropperxmjs, published on 9 Sep 2026.
Official description
@staticj/[email protected] ships a modified cropper.min.js that impersonates the legitimate Cropper.js library. At library load, injected code reconstructs the URL https://u.myquickcash.shop/api/spt/upgrade from many single-letter string fragments interleaved with legitimate Cropper.js constants (Qt='https:', Kt='//u.', Vt='my', Ft='quick', Jt='cash', t='.shop', qt='/api/spt/', $t='upgrade') to defeat simple grep-based detection. It reads GM_info.script metadata (author, name, version, namespace, updateURL), URL-encodes it, and sends it via GM_xmlhttpRequest to that endpoint; the response body is passed to eval(), executing attacker-controlled JavaScript under Tampermonkey/Greasemonkey privileges (GM* APIs bypass CORS/CSP). Calls are rate-limited to 15/day using GM_setValue key 'sp_req_daily'. The exfiltrated updateURL identifies each victim userscript's auto-update channel, enabling targeted follow-on supply-chain attacks. Any userscript bundling this file exposes its end users to remote code execution controlled by the operator of u.myquickcash.shop.
What should I do about MAL-2026-16081?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.