-= Per source details. Do not edit below this line.=-
The package advertises itself as a community utility node for n8n but its declared main (index.js) is a self-executing IIFE that runs the moment n8n loads the module. On execution it (1) opens a reverse shell by spawning /bin/bash with stdio redirected via /dev/tcp to 103.27.109.184:8895, giving the operator of that host interactive root-level control of the installer; (2) attempts multiple Docker-based container escapes (bind-mounting the host root filesystem, and --privileged nsenter) to append a hardcoded attacker ssh-ed25519 public key labeled 'n8n-backdoor' to /root/.ssh/authorized_keys on the underlying host for persistent SSH access; (3) collects hostname, user id, network interfaces, docker ps output, environment variables, and the contents of /etc/shadow, /etc/kubernetes/kubelet.conf, and /root/.kube/config obtained via the Docker escape, and posts the results as JSON over TCP to 103.27.109.184 on ports 8890 and 8891. A separate MyNode.js file is a benign-looking stub referenced by package.json's n8n.nodes to serve as cover while index.js carries the payload.
The OpenSSF Package Analysis project identified 'n8n-nodes-final-mile' @ 1.0.5 (npm) as malicious.
It is considered malicious because:
{
"malicious-packages-origins": [
{
"import_time": "2026-07-18T07:10:20.827353224Z",
"modified_time": "2026-07-17T13:26:59Z",
"sha256": "05b380bdd6ee5152383cbfbc76d5bd8814a303ecf1b7147b9fdef008f277f2a3",
"source": "ossf-package-analysis",
"versions": [
"1.0.5"
]
},
{
"id": "IN-MAL-2026-010808",
"import_time": "2026-07-22T20:31:08.271197282Z",
"modified_time": "2026-07-22T20:30:39Z",
"sha256": "fa998607f0d75c91065c907c6dcb5f95486cd5c2434345489229c32ff81a95e1",
"source": "amazon-inspector",
"versions": [
"1.0.1"
]
},
{
"id": "IN-MAL-2026-010823",
"import_time": "2026-07-22T20:59:12.844991568Z",
"modified_time": "2026-07-22T20:35:38Z",
"sha256": "14b90f054f4ef385c3a82d640fe3c14be981a63211cc3e954fce6daf0e3f46af",
"source": "amazon-inspector",
"versions": [
"1.0.3"
]
},
{
"id": "IN-MAL-2026-010817",
"import_time": "2026-07-22T20:59:11.925685342Z",
"modified_time": "2026-07-22T20:34:48Z",
"sha256": "28f059e99eadb9dda1ec8bbb04763e4b0dd8a2205486ae3a9f779d36c0a8f852",
"source": "amazon-inspector",
"versions": [
"1.0.4"
]
},
{
"id": "IN-MAL-2026-010836",
"import_time": "2026-07-22T20:59:14.767459085Z",
"modified_time": "2026-07-22T20:37:40Z",
"sha256": "b747e9249d1736319be7168241c2d9614c65afb61c4c7f3cbca8291d7d9b917e",
"source": "amazon-inspector",
"versions": [
"1.0.0"
]
},
{
"id": "IN-MAL-2026-010827",
"import_time": "2026-07-22T20:59:13.571533659Z",
"modified_time": "2026-07-22T20:36:13Z",
"sha256": "d2c87dad5030c245317bd34041521d73d8c112d79018db381d749c80739d539f",
"source": "amazon-inspector",
"versions": [
"1.0.2"
]
},
{
"id": "IN-MAL-2026-011007",
"import_time": "2026-08-04T21:33:13.32060786Z",
"modified_time": "2026-08-04T21:18:51Z",
"sha256": "71827518a11831a8654d20f026765d09f3f543fdf51d51a5cb094df74e681d02",
"source": "amazon-inspector",
"versions": [
"1.0.5"
]
}
]
}[
{
"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"
},
{
"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": "index.js",
"sha256": "574bd5a76bd495f5de17d44129cd09c58a36d58c1c144260ab4bef8ce21dca61",
"tlsh": "bc3103e8fd785630b137f06866af200b3853d4070254ba9870abc7b1af5dbdd65945f8"
},
{
"path": "package.json",
"sha256": "780e13bec1073e0a4ed46142800c4b1d0129bfd1ee20e4956e40a69a8feabc6d",
"tlsh": "25d023150d33c63311c4ad7129ba960636690c965084bd195747140543ad6b724f923d"
}
],
"package_integrity": [
{
"filename": "n8n-nodes-final-mile-1.0.1.tgz",
"hashes": {
"sha1": "57bd4e8ddb3cea10cbe5bd50052d1c34cc7376c4",
"sha512_sri": "sha512-sS0V4BGMGU7PtQWMscg+s6PH768okymj7CZiuPLveiMVS0EvZaf4X0fnSA+JMywtA/6A+8wOJWSa1YUEiW4SjA=="
}
}
]
}
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/n8n-nodes-final-mile/MAL-2026-10776.json"