{"id":"MAL-2026-2430","summary":"Malicious code in k8s-node-health (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (9358111fecbdb3180b8f4c0c6543abff3024c59deaf488cf3a34089820e96172)\nDuring import, the code download and starts remote executable that later connects to a C2 server, likely establishing a reverse tunnel. After executing the remote binary, the code performs covering-tracks actions by removing the binary from disk, and - depending on version - modifying the package code. The dropper code is either a Python script, or a compiled binary with obfuscated location of the remote binary and config for it.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-03-kube-health-tools\n\n\nReasons (based on the campaign):\n\n\n - Downloads and executes a remote executable.\n\n\n - backdoor\n\n\n - obfuscation\n\n\n - covering-tracks\n","modified":"2026-04-02T16:01:45.905070Z","published":"2026-04-02T15:10:22Z","database_specific":{"iocs":{"urls":["https://github.com/gibunxi4201/kube-node-diag/releases/download/v2.0/kube-diag-linux-amd64-packed"],"domains":["sync.geeker.indevs.in"]},"malicious-packages-origins":[{"modified_time":"2026-04-02T15:10:22.524727Z","id":"pypi/2026-03-kube-health-tools/k8s-node-health","import_time":"2026-04-02T15:26:55.076528877Z","source":"kam193","versions":["1.2.0","1.3.0"],"sha256":"9358111fecbdb3180b8f4c0c6543abff3024c59deaf488cf3a34089820e96172"},{"modified_time":"2026-04-02T15:10:22.524727Z","id":"pypi/2026-03-kube-health-tools/k8s-node-health","import_time":"2026-04-02T15:51:10.427474414Z","source":"kam193","versions":["1.2.0","1.3.0"],"sha256":"eec6f580a671df13ae0797f7f2013460180cc47f037a2056cdcc0439c642a68f"}]},"references":[{"type":"WEB","url":"https://github.com/gibunxi4201/kube-node-diag"},{"type":"WEB","url":"https://inspector.pypi.io/project/kube-health-tools/1.0.9/packages/ab/41/abea82b56e7ac3b06c15fc7760f6857df6fc9b4739254b362c2bbeaf6fb7/kube_health_tools-1.0.9-py3-none-any.whl/kube_health/__init__.py#line.32"},{"type":"WEB","url":"https://inspector.pypi.io/project/kube-health-tools/1.0.9/packages/ab/41/abea82b56e7ac3b06c15fc7760f6857df6fc9b4739254b362c2bbeaf6fb7/kube_health_tools-1.0.9-py3-none-any.whl/kube_health/__init__.py#line.47"},{"type":"WEB","url":"https://inspector.pypi.io/project/kube-health-tools/1.0.11/packages/35/54/8be76acf54f2401a8ca6984cd548caf9eaf75feab5be3d4b231078db4d9d/kube_health_tools-1.0.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl/kube_health/__init__.c#line.3922"},{"type":"EVIDENCE","url":"https://www.virustotal.com/gui/file/fe3f5d15951b25654f14045de3181ec6630a0ba65add8a65309b01c8324387f1/detection"},{"type":"WEB","url":"https://bad-packages.kam193.eu/pypi/package/k8s-node-health"}],"affected":[{"package":{"name":"k8s-node-health","ecosystem":"PyPI","purl":"pkg:pypi/k8s-node-health"},"versions":["1.2.0","1.3.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/k8s-node-health/MAL-2026-2430.json"}}],"schema_version":"1.7.5","credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"ANALYST"},{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}