MAL-2026-10776

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/n8n-nodes-final-mile/MAL-2026-10776.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-10776
Published
2026-07-17T13:26:59Z
Modified
2026-08-04T22:05:09Z
Summary
Malicious code in n8n-nodes-final-mile (npm)
Details

-= Per source details. Do not edit below this line.=-

Source: amazon-inspector (d2c87dad5030c245317bd34041521d73d8c112d79018db381d749c80739d539f)

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.

Source: ossf-package-analysis (05b380bdd6ee5152383cbfbc76d5bd8814a303ecf1b7147b9fdef008f277f2a3)

The OpenSSF Package Analysis project identified 'n8n-nodes-final-mile' @ 1.0.5 (npm) as malicious.

It is considered malicious because:

  • The package executes one or more commands associated with malicious behavior.
Database specific
{
    "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"
            ]
        }
    ]
}
References
Credits

Affected packages

npm / n8n-nodes-final-mile

Package

Name
n8n-nodes-final-mile
View open source insights on deps.dev
Purl
pkg:npm/n8n-nodes-final-mile

Affected ranges

Affected versions

1.*
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5

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"
    },
    {
        "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"
    }
]
indicators
{
    "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=="
            }
        }
    ]
}
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/n8n-nodes-final-mile/MAL-2026-10776.json"