-= Per source details. Do not edit below this line.=-
The package exports a Helper class that implements two installer-harming primitives on Windows. First, start() launches a polling loop that reads every virtual-key state (vKey 1..255) via user32.dll GetAsyncKeyState/GetKeyState (loaded through koffi), decodes each keypress with shift/caps/ctrl/alt handling, and appends the reconstructed keystrokes — including typed passwords and seed phrases — to a log file under %LOCALAPPDATA%<KEYLOGGERDIR><KEYLOGGERLOGFILE>, where those constants are imported from the sibling package test-dev-config. Second, monitorClipboard polls the Windows clipboard once per second via PowerShell Get-Clipboard, classifies its contents against regexes for BTC, ETH, BASE, TRX, XRP, SOL, DOT, XMR, LTC, ADA, ATOM, NEAR, APT, SUI, TON, BCH, DOGE, XLM, and AVAX addresses, and when a match is found overwrites the clipboard via PowerShell Set-Clipboard with an address drawn from walletreplacements[chain], redirecting outgoing cryptocurrency transfers to an operator-controlled destination. The package name 'test-dev-watch' and its benign-looking metadata do not correspond to the shipped functionality; the imported identifiers KEYLOGGERDIR and KEYLOGGERLOGFILE, together with the sibling packages test-dev-config and test-dev-store that supply the keylogger path components, indicate coordinated infrastructure for planting a keylogger and clipper on developer machines that install the package.
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": [
{
"source": "ghsa-malware",
"modified_time": "2026-08-01T03:43:30Z",
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
}
]
}
],
"id": "GHSA-qxrq-qr5j-h4rw",
"sha256": "db85a6a548238053a85ec4851a41b50b3e501d57ac56043fed21d711c1110b4c",
"import_time": "2026-08-02T22:41:05.110529Z"
},
{
"import_time": "2026-08-04T22:30:03.472698486Z",
"modified_time": "2026-08-04T21:43:47Z",
"sha256": "9279c0e19b9b69a299d8c88c237d4e6c215f7fe4527e8d7f9fbb049065ead5e2",
"id": "IN-MAL-2026-011178",
"versions": [
"0.1.0"
],
"source": "amazon-inspector"
}
]
}[
{
"name": "Embedded Malicious Code",
"description": "The product contains code that appears to be malicious in nature.",
"cweId": "CWE-506"
},
{
"name": "Embedded Malicious Code",
"description": "The product contains code that appears to be malicious in nature.",
"cweId": "CWE-506"
}
]
{
"evidence_files": [
{
"path": "src/helper.js",
"sha256": "2e86e2ca50dbb13ae01e01d93915a3b948bed9d2656ad011fc1d4f4bf0d48c47",
"tlsh": "06424443912f5806c5b5f7b84f03505afb25433f274b819a7fbc86882f76520d2a9eac"
},
{
"path": "package.json",
"sha256": "25718d272d1d2e5802d24b0c26101bccbe8802b94522062ea7fa268ddce21b77",
"tlsh": "b7e02b27cd67d96301b465d1747e0217f572cf6f40218c0bb0fa1a2c4b9284308aaf1c"
}
]
}
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/test-dev-watch/MAL-2026-11495.json"