Skip to content
Heist/ feed
Unrated

Malicious code in n8n-nodes-moonlet-helpers (npm)

Type: advisorySource: OSV1 source record

--- _-= 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.

Announced Group revision 1
Original source ↗

MAL-2026-17176

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: osv:MAL-2026-17176

n8n-nodes-moonlet-helpers

Source reference: /affected/0/package/name

Affected versions
1.0.0

Source reference: /affected/0/versions

1.0.4

Source reference: /affected/0/versions

Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "package": {
      "name": "n8n-nodes-moonlet-helpers",
      "purl": "pkg:npm/n8n-nodes-moonlet-helpers",
      "ecosystem": "npm"
    },
    "versions": [
      "1.0.0",
      "1.0.4"
    ],
    "database_specific": {
      "cwes": [
        {
          "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."
        }
      ],
      "source": "https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/n8n-nodes-moonlet-helpers/MAL-2026-17176.json",
      "indicators": {
        "evidence_files": [
          {
            "path": "postinstall.js",
            "tlsh": "c10120e751f180106b3240dce063b53fa507f00166429de0f85c85234fc16bd493b5f8",
            "sha256": "57ca4cffba58dc9cb3dbf77dfbd201fd9183cfb5cfb738c4f61ab74b2829eb4a"
          }
        ],
        "package_integrity": [
          {
            "hashes": {
              "sha1": "a021317979bd87040aaa6a70b65255de3a9bbf0c",
              "sha512_sri": "sha512-X7dccg2qEkYT5YeFcaYxLL9gNiaeh7lFwJYhm3YXSBWWxNX0f9Oy9fLk9bOLrCcyQmUnFxW5ZfP9rYQgfDTzVA=="
            },
            "filename": "n8n-nodes-moonlet-helpers-1.0.0.tgz"
          }
        ]
      }
    }
  }
]

Publisher severity

No explicit severity was provided.

Event
#14779 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement