Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

tt-help-cli-yclnpm

tt-help-cli-ycl is a confirmed malicious npm package (MAL-2026-12488) that steals credentials and exfiltrates sensitive data (malicious versions 1.4.57, 1.4.58, 1.4.59…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in tt-help-cli-ycl (npm)

MAL-2026-12488
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall tt-help-cli-ycl

What this malware does

The package's tt-help watchdog subcommand starts a long-running agent that POSTs heartbeats to a remote server (default hardcoded to http://117.71.53.99:17301, referenced in src/lib/constants.js and the README/run-explore examples) and executes commands returned in the response. In WatchdogAgent, syncCommands maps entries from the server's commands array into child_process.spawn(command, { shell: true }) via ProcessManager.startCommand, with auto-restart — the remote operator selects arbitrary shell commands to run on the installer's host. Each heartbeat body assembled by _buildHeartbeatBody carries hostname, non-internal IPv4 address, OS platform/release/arch, CPU count, memory, node version, uptime, load average, and the contents of ~/.tt-help.json (server, proxy, browser, userId, tuning fields), POSTed as JSON to ${serverUrl}/api/watchdog/heartbeat at the configured interval (default 15s). In addition, _startUpgradeChecker polls the npm registry every 10 minutes and, when a new version of tt-help-cli-ycl is published, invokes npm install -g tt-help-cli-ycl@latest via child_process.exec and re-spawns, so the publisher can push arbitrary new code to every running agent host without user confirmation. The combination of remote-command execution, ongoing host inventory + stored-config exfiltration to a bare-IP destination, and unattended auto-upgrade constitutes a full command-and-control backdoor rather than a legitimate remote-management tool.

Malicious versions

21 flagged
1.4.571.4.581.4.591.4.601.4.611.4.621.4.631.4.641.4.651.4.661.4.671.4.681.4.691.4.701.4.711.4.721.4.731.4.741.4.751.4.761.4.78

Indicators of compromise (SHA-256)

425b148abb84342912d6e2caf046da7ccf806a32c1b3950a3d41366980fd3eed
5246f6fbb6e6d46a9a9cab000fb5e2c2f2816831f9df67f64803054c92423963
dc827d9593cc7d3cb899922b4e5a26de6ae026ca1994165607b9fb63bcf71207
2b08749c0630d26064b36e3071e5baea85518db047bbbba08354d016de4dc317
e6144be61d70f258741e5d4cc1476021f93e3ce82ffa00a3f86189537a1438a6
0dd6259fc4fef46022321a36e47e5fa376b3ea75efd865739972cefe81d39f44
10e07f1b41f6d7006d567df95e1b0c8d66b0421acc475728775b7202b0100645
37d7042d1599b8debfbd542ec7e3a1f863a2d0d8ae75776f34b43f0886e0f439
402f9b1404d216c056fe64795e3b99247cfa3d2e622e639ea7d2e3353c1e2deb
9847510afa4b965a2dcac10901f9904c43bcf5f2652e51b755ab18509cc20ad5
be0b9d48edaef660b4d633e0211492e7b5a16c73a04fda03b4111e6975de4f4c
e8582513a8f8461374843816fddae5c0e10e1bc9b8eec62751a5a93a37dcc598
ec04b56635a7ef02a3e026f79a1ff0bd91f4b3208b2ebf34d35b66dacd2ad3b8
a49b203a895b6dc9765e7bca1f48efdc4bd1f51e6ac1c5a85b3a3aefd274e093
b1a2cabd93a9d96eecf5fd8356a9ef7ad867d758a00844d7852c7acd87871779
ee3080a4ce6b88ee9bb8dac5c5881b9c3479b0cbf9aa31ad63cbc01c34ebcec4
f7e11b8aa382aca577ceb5b4b96fb55e893903af9547b7394b21981723b50271
a6a7892e662701e9afec65b057e5e62c0271ba4e9486fd93355d54940caaa77a
53e5ac496bfe78550d62897473d919a91ca99b9d2094e3b047154a1b06b3ae24
d48ae50449c449b787861aaa24f700d9d2e934dbf414b9d184f2af80b1bd2105
0ebb6712b5224c449113cdc08e378e3bdde0d4fa85f4a88a712a8b0dacf34dc2

Detection & response playbook

Credential / info stealer
  1. Find it

    Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for tt-help-cli-ycl (21 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging tt-help-cli-ycl across your stack and pipelines.

  2. If you installed it — respond

    tt-help-cli-ycl is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.

  3. Did it already run?

    If tt-help-cli-ycl was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.

  4. How O3 protects you

    O3 blocks tt-help-cli-ycl before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.

Frequently asked questions

No. tt-help-cli-ycl on npm has been identified as a malicious package (versions 1.4.57, 1.4.58, 1.4.59, 1.4.60, 1.4.61, 1.4.62, 1.4.63, 1.4.64, and 13 more flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-014817IN-MAL-2026-014793IN-MAL-2026-014633IN-MAL-2026-015793IN-MAL-2026-015790IN-MAL-2026-016261IN-MAL-2026-016258IN-MAL-2026-016255IN-MAL-2026-016256IN-MAL-2026-016265IN-MAL-2026-016266IN-MAL-2026-016257IN-MAL-2026-016260IN-MAL-2026-016262IN-MAL-2026-016259IN-MAL-2026-016263IN-MAL-2026-016264IN-MAL-2026-016364IN-MAL-2026-017079IN-MAL-2026-017078IN-MAL-2026-017080

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks tt-help-cli-ycl-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

tt-help-cli-ycl (npm) malicious package — MAL-2026-12488 | O3 Security