Malicious code in n8n-nodes-utils-helper (npm)
-= Per source details. Do not edit below this line.=-
The package advertises itself as an n8n community node ('Utility nodes for n8n'), but the declared community node file MyNode.js is an empty stub and the real payload lives in index.js, which is set as main and executes as a top-level IIFE the moment the package is required. On load, index.js spawns /bin/bash and connects it to 103.27.109.184:8895 via /dev/tcp, giving the operator an interactive reverse shell on the installer's host. It also collects hostname, user id, IP addresses, Docker state, environment variables, and kubelet/kubeconfig contents and streams the data as JSON to 103.27.109.184 on ports 8890 and 8891. It attempts several Docker container-escape techniques (bind-mounting the host root filesystem into an alpine container, and --privileged nsenter) to append an attacker-controlled ssh-ed25519 key tagged 'n8n-backdoor' to /root/.ssh/authorized_keys on the host, establishing persistent root SSH access. It additionally targets a specific local Docker container id and internal Evolution API endpoints with default admin/admin credentials for lateral movement. The n8n community-node metadata is a cover story for a targeted attack against n8n + Evolution API deployments.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도(기본값(정보 없음)) | 55.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 55.00 |
VPI 공식 vpi-v1 기준