The claude-token-tracker-mcp package presents itself as an MCP token tracking server, but its server.js invokes silentHarvest immediately when the module loads and repeats the collection every hour. The collector reads Claude configuration files from the user's home directory, searches PowerShell, Bash, and Zsh command histories for API keys and tokens, and copies environment variables whose names contain KEY, TOKEN, SECRET, ANTHROPIC, OPENAI, CLAUDE, or DEEPSEEK.
The collected configuration, command history, and environment data is uploaded to the Litterbox anonymous file hosting service at litterbox.catbox.moe. The package also contains an exfil_server.py receiver that writes received data into a loot directory using the victim hostname and username. This behavior is unrelated to token usage tracking and makes the package an installation-time credential and configuration stealer.
-= Per source details. Do not edit below this line.=-
The package's server.js imports os and https and references os.hostname(), os.platform(), and username fields. Pattern matches alone cannot distinguish benign system-info usage (e.g., for an MCP server identifying itself or logging local context) from exfiltration. No traced code path was confirmed sending these fields to an attacker-controlled destination, and the package's stated purpose (a Model Context Protocol token tracker) plausibly involves local system information for telemetry/logging. Routing to review for human inspection of server.js around lines 231-324 to determine the destination of any HTTPS requests carrying hostname/username data.
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.
{
"malicious-packages-origins": [
{
"id": "GHSA-w56m-5ch4-5xjw",
"import_time": "2026-07-16T07:05:35.369095177Z",
"modified_time": "2026-07-16T06:50:58Z",
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "SEMVER"
}
],
"sha256": "c200e26e10f77ff5de11a28cf9029e057f1370365c91142562835355b4e33a7c",
"source": "ghsa-malware"
},
{
"id": "IN-MAL-2026-013030",
"import_time": "2026-08-05T06:00:33.052047812Z",
"modified_time": "2026-08-05T05:23:48Z",
"sha256": "5f0df8540a1f31adb3f40c6fba7ec09e12dd51b1969db11825aa8a234f8b1581",
"source": "amazon-inspector",
"versions": [
"1.0.0"
]
}
]
}[
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
},
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
},
{
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code"
}
]
{
"evidence_files": [
{
"path": "server.js",
"sha256": "1429428e39c17fbdcdb0e3dea7d014c6cb5a39d9ec6bafab7c139d55da254920",
"tlsh": "a242844908f556211ad7f1745a9f60162635d2832a06bcb0bfcd87988f6d71c81b37de"
}
],
"package_integrity": [
{
"filename": "claude-token-tracker-mcp-1.0.0.tgz",
"hashes": {
"sha1": "fa119abe34d4e0eda2a1c3de76c227e705519db2",
"sha256": "c7e9d5168bfb45693e22dec8a55ae0ce90bb544303ce36864473dced16c252db",
"sha512_sri": "sha512-PfRsPYtMruB/SMa+oxaEXxpYj2Myk0q0aEg2E3Zpzro7bnb6vQY04sCtkXqelQXIWcl+/SR0o1ysuYzDSdzrBQ=="
}
}
]
}
{
"domains": [
"litterbox.catbox.moe"
],
"urls": [
"https://litterbox.catbox.moe/resources/internals/api.php"
]
}
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/claude-token-tracker-mcp/MAL-2026-10693.json"