OpenSSF/OSV advisory MAL-2026-12484 confirms this npm version as malicious. The package's declared main entry launcher.js invokes launch() at top level, so require('trailserver') triggers system-level installation of Python (via winget, or by downloading python-3.12.3-amd64.exe from python.org and running the installer silently), pip-installs pyperclip/keyboard/pyautogui/pillow/requests, and spawns a bundled Python script (client/noderzero.py)...
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in trailserver (npm)
Details
The package's declared main entry launcher.js invokes launch() at top level, so require('trailserver') triggers system-level installation of Python (via winget, or by downloading python-3.12.3-amd64.exe from python.org and running the installer silently), pip-installs pyperclip/keyboard/pyautogui/pillow/requests, and spawns a bundled Python script (client/noderzero.py). That script continuously monitors the clipboard and captures full-screen screenshots (plus OCR-selected regions) and POSTs the raw text and base64-encoded JPEG images to the hardcoded URL https://trailserver.vercel.app/api; the destination is not caller-configurable. The Python payload additionally registers global keyboard hooks, hides its UI via overrideredirect and a transparent-color topmost overlay, auto-types content into other applications through pyautogui, and exposes a ctrl+q panic-exit. Installing or importing this package delivers a stealth clipboard/screen/keystroke surveillance agent to the installer's machine and streams its output to an author-controlled endpoint.
Decision reason
OpenSSF Malicious Packages via OSV confirms trailserver@1.0.5 as malicious (MAL-2026-12484): Malicious code in trailserver (npm)