MAL-2026-14215 Malicious code in sysdo (npm)
Malicious package
Published
MAL-2026-14215 is a malicious package: sysdo (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-14215/ (Markdown: https://insights.sbomify.com/MAL-2026-14215/index.md)
- Package
- sysdo
- Registry
- npm
What is MAL-2026-14215?
MAL-2026-14215 is a malicious package in sysdo, published on 19 Aug 2026.
Official description
The package is published as a 'System binary configuration tool' but its actual payload is a Windows surveillance harness. pointer.py registers global keyboard hooks and hotkeys, captures clipboard contents via pyperclip, takes screenshots via mss/ImageGrab, and walks UI-automation trees to extract on-screen text, then POSTs the captured data to the hardcoded endpoint https://iq-sec.vercel.app/api which the installer did not configure. It creates borderless topmost windows with empty titles and a 'panic_exit' hotkey, and can inject text back into the active window via pyautogui, giving covert operator-assist capability on the installer's host. The npm entry point (index.js, invoked via the bin/start script) silently installs Python by first attempting winget and then downloading the python.org 3.12.3 installer to %TEMP% and running it with /quiet flags in comments explicitly framed as a 'Ghost Install (No UI, No Admin Popup)', and pip-installs the surveillance stack (pyperclip, keyboard, mss, pyautogui, pywin32, uiautomation). A bundled start_tool.vbs uses Shell.Application.ShellExecute with a hidden window (mode 0) to launch cmd.exe running pointer.py without a visible console. The declared purpose does not match the observed behavior, and the exfiltration destination is a hardcoded author endpoint rather than any installer-configurable target.
What should I do about MAL-2026-14215?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.