MAL-2026-17176
Vulnerability from ossf_malicious_packages
-= Per source details. Do not edit below this line.=-
Source: amazon-inspector (937f80200481fb9bef57f6dc72e7ad55bee68982b1cb7a86b909c86c46e8b2ec)
Package presents itself as n8n helper nodes but ships an empty stub index.js (module.exports = {}) and no functional node modules. On npm install, postinstall.js runs automatically: it performs an HTTPS GET to https://mkicom.com/.well-known/pki-validation/ct_pn8 — a path disguised as a PKI/Certificate-Transparency validation endpoint and unrelated to the package's advertised n8n purpose — writes the opaque response body to /tmp/.np, chmods it 0755, and executes it via spawn('/bin/sh', ['-c', 'setsid /tmp/.np... &'], {detached: true}) so the process survives npm exit. There is no hash, signature, or version pinning on the downloaded bytes. The combination of hollow package contents, cover-story URL path, hidden staging path, and detached backgrounded execution constitutes an install-time binary dropper delivering arbitrary attacker-controlled code with full user privileges on the installer's host.
{
"affected": [
{
"database_specific": {
"cwes": [
{
"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"
}
],
"indicators": {
"evidence_files": [
{
"path": "postinstall.js",
"sha256": "57ca4cffba58dc9cb3dbf77dfbd201fd9183cfb5cfb738c4f61ab74b2829eb4a",
"tlsh": "c10120e751f180106b3240dce063b53fa507f00166429de0f85c85234fc16bd493b5f8"
}
],
"package_integrity": [
{
"filename": "n8n-nodes-moonlet-helpers-1.0.0.tgz",
"hashes": {
"sha1": "a021317979bd87040aaa6a70b65255de3a9bbf0c",
"sha512_sri": "sha512-X7dccg2qEkYT5YeFcaYxLL9gNiaeh7lFwJYhm3YXSBWWxNX0f9Oy9fLk9bOLrCcyQmUnFxW5ZfP9rYQgfDTzVA=="
}
}
]
}
},
"package": {
"ecosystem": "npm",
"name": "n8n-nodes-moonlet-helpers"
},
"versions": [
"1.0.0",
"1.0.4"
]
}
],
"credits": [
{
"contact": [
"inspector-research@amazon.com"
],
"name": "Amazon Inspector",
"type": "FINDER"
}
],
"database_specific": {
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-020541",
"import_time": "2026-09-25T02:45:28.833479647Z",
"modified_time": "2026-09-25T02:40:24Z",
"sha256": "937f80200481fb9bef57f6dc72e7ad55bee68982b1cb7a86b909c86c46e8b2ec",
"source": "amazon-inspector",
"versions": [
"1.0.0"
]
},
{
"id": "IN-MAL-2026-020542",
"import_time": "2026-09-25T02:45:28.862114203Z",
"modified_time": "2026-09-25T02:40:31Z",
"sha256": "fe3c30c7100c080a1f0c265a5c4f51f93b5c970eda7531a5f7d91c1114bae554",
"source": "amazon-inspector",
"versions": [
"1.0.4"
]
}
]
},
"details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (937f80200481fb9bef57f6dc72e7ad55bee68982b1cb7a86b909c86c46e8b2ec)\nPackage presents itself as n8n helper nodes but ships an empty stub `index.js` (`module.exports = {}`) and no functional node modules. On `npm install`, `postinstall.js` runs automatically: it performs an HTTPS GET to `https://mkicom.com/.well-known/pki-validation/ct_pn8` \u2014 a path disguised as a PKI/Certificate-Transparency validation endpoint and unrelated to the package\u0027s advertised n8n purpose \u2014 writes the opaque response body to `/tmp/.np`, chmods it 0755, and executes it via `spawn(\u0027/bin/sh\u0027, [\u0027-c\u0027, \u0027setsid /tmp/.np... \u0026\u0027], {detached: true})` so the process survives npm exit. There is no hash, signature, or version pinning on the downloaded bytes. The combination of hollow package contents, cover-story URL path, hidden staging path, and detached backgrounded execution constitutes an install-time binary dropper delivering arbitrary attacker-controlled code with full user privileges on the installer\u0027s host.\n",
"id": "MAL-2026-17176",
"modified": "2026-09-25T02:47:18Z",
"published": "2026-09-25T02:40:24Z",
"references": [
{
"type": "PACKAGE",
"url": "https://www.npmjs.com/package/n8n-nodes-moonlet-helpers/v/1.0.0"
},
{
"type": "PACKAGE",
"url": "https://www.npmjs.com/package/n8n-nodes-moonlet-helpers/v/1.0.4"
}
],
"schema_version": "1.7.4",
"summary": "Malicious code in n8n-nodes-moonlet-helpers (npm)"
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.