GHSA-p6gj-69gx-r376: Malicious code in @walknpm/todo-cli (npm)

Published Oct 26, 2026
·
Updated

@walknpm/todo-cli@2.0.1 is a new release of a todo-list CLI and web app whose only change from 2.0.0 is a postinstall script, sh scripts/miner.sh, that runs on npm install. The script downloads a gzip carrier from amplify-gursha-dev-121835-deployment.s3.amazonaws.com to /tmp/.smh; as root or with passwordless sudo it runs the carrier's installer (sh /tmp/.smi agent), which installs an XMRig miner plus two helper daemons under random system-component names and persists them as systemd units or @reboot cron entries, and otherwise it extracts the bundled XMRig binary to ~/.local/lib/<random name>/ and mines Monero to networkservicesupp.flashhub.net:8443 over TLS with a hardcoded wallet. The npm account walknpm published the same scripts/miner.sh in dsh-plugin-blender-3d@0.2.1 within 27 seconds of this version on 2026-10-26, and it is byte-identical to the one in @sudobility/testomniacclient (MAL-2026-18129).

--- -= Per source details. Do not edit below this line.=-

Source: amazon-inspector (f32e42bc70458d6a0973dfbe2d94961cca2ee423198c53bf753a7680c61df96f) The package's postinstall hook runs scripts/miner.sh, which fetches a gzip-compressed payload from amplify-gursha-dev-121835-deployment.s3.amazonaws.com (using a hardcoded AWS access key <redacted> in a presigned URL), writes it to /tmp/.smi, and executes it via sh on every npm install. If root or passwordless sudo is available, the script runs sh /tmp/.smi agent to install a persistent agent (cron/relay/tor per in-script comments). Otherwise, it extracts an embedded XMRig binary (base64/tar.gz blob after a PAYLOAD marker), writes a Monero pool configuration to $HOME/.sysmond.json pointing at networkservicesupp.flashhub.net:8443 with wallet 49u1mKb1dNoMixgRHt11Ra32D1w4hviUuRDbaJhXFwXUjQP4FiHsSjnDa7XZepDUW1Tx6HhR6gFwWgbuwNxby4UAMiqxieX, copies the miner to $HOME/.local/lib/<stealth-name>/<stealth-name> using a system-daemon-like name pool (edid-mon, smmon, irqstatsd,...), and backgrounds it with nohup. Installing the package results in unconditional remote code execution on the installer's host, cryptomining compute/electricity theft, and persistence that is non-trivial to detect and remove.

Source: ghsa-malware (4b1b865efcc7d2ea28c5ad7580b823a36d22c88bc165f9c57a2f42b3accc4d88) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.

Source: ossf-package-analysis (8c741f8bd0012bceb8789b8e2fc0ac836c5ccb88a348918365af4850f1576be4) The OpenSSF Package Analysis project identified '@walknpm/todo-cli' @ 2.0.1 (npm) as malicious.

It is considered malicious because:

- The package executes one or more commands associated with malicious behavior.

Affected Software

1 affected component
npm/@walknpm/todo-cli=2.0.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Remove

    Remove npm/@walknpm/todo-cli from your environment.

    Remove/uninstall the @walknpm/todo-cli package; removing it may not remove malicious software installed as a result.

  2. Operational

    Immediately rotate all secrets and keys stored on any computer where the package was installed, performing the rotation from a different computer.

Event History

Oct 26, 2026
Advisory Published
via OSV·12:55 AM
Data Sourced
via OSV·12:55 AM
DescriptionAffected Software
Oct 28, 2026
Advisory Published
via GitHub·06:10 PM
Data Sourced
via GitHub·06:10 PM
DescriptionWeaknessAffected Software

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203