Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in w-screenctl (npm)

w-screenctl npm package contained malicious code that exposed an unauthenticated HTTP server on 0.0.0.0:7000, allowing remote arbitrary JavaScript execution in a controlled Chrome instance and system-wide keyboard/mouse input, leading to potential host RCE.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any system with w-screenctl installed and invoked, with network access to the HTTP server on port 7000.
Ecosystems
Attack vectors
Affected entities
  • w-screenctlnpm package

The w-screenctl npm package contained intentionally malicious code that, when the WScreenctl() function is invoked (via bundled entry point or documented systemd/Task Scheduler service units), starts a Hapi HTTP server listening on all interfaces (0.0.0.0:7000) with CORS enabled and no authentication.\n\nThe exposed HTTP endpoints allow remote attackers to:\n- POST to /chrome/evaluate with arbitrary JavaScript that is passed directly to Playwright's page.evaluate, executing code within the controlled Chrome instance\n- POST to /keyboard/type, /keyboard/key, and /mouse/* endpoints to drive system-wide keyboard and mouse input via xdotool or w-mousekey/AHK\n\nBecause the server binds to all network interfaces without credential checks, any party with network reachability (LAN, adjacent VLAN, or internet-routable interface) can exploit these endpoints to execute arbitrary JavaScript in the browser and drive keystrokes/clicks on the operator's machine. This can be leveraged to open a terminal, type shell commands, and achieve full remote code execution on the host.\n\nThe malicious package was identified by the OpenSSF malicious-packages project.

Indicators of compromise

Packages
  • w-screenctl

Remediation

  • Immediately uninstall w-screenctl from all systems
  • Audit npm package.json and lock files for any w-screenctl dependencies
  • Review system logs for any suspicious HTTP activity on port 7000 or unexpected keyboard/mouse input
  • If the package was invoked, assume host compromise and perform full system forensics and remediation
  • Update to a clean version of any legitimate replacement package if available
  • Implement network segmentation and firewall rules to restrict outbound connections from development/build systems

Sources

  1. GitHub Advisory GHSA-38f4-gq4r-6vwp · GitHub Advisory Database

Cite this entry

"Malicious code in w-screenctl (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 7, 2026; last updated August 7, 2026. https://supplychainattack.org/incident/malicious-code-in-w-screenctl-npm-4rv32j

Suggest a correction

Found an error or have a newer source? Corrections to factual errors take priority over new entries.

  1. containedcritical

    Malware in chlklib

    Malware was discovered in the npm package chlklib, resulting in full system compromise of any computer with the package installed or running. All affected systems should be considered fully compromised and all secrets and keys rotated immediately from a different computer.

    npmCompromised package
  2. resolvedcritical

    Malware in alphazone

    The npm package alphazone contained malware that provided full system compromise to attackers. Any computer with the package installed or running should be considered fully compromised.

    npmCompromised package
  3. containedcritical

    Malware in chai-as-deployer

    Malware was discovered in the npm package chai-as-deployer, resulting in full system compromise for any computer with the package installed or running. All secrets and keys on affected systems should be rotated immediately from a different computer.

    npmCompromised package
  4. containedcritical

    Malware in checkout-common-tokens

    Malware was discovered in the npm package checkout-common-tokens. Systems with this package installed are considered fully compromised and require immediate remediation.

    npmCompromised package