{"id":"MAL-2026-2400","summary":"Malicious code in kube-node-health (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (391555cff14c82156843bee267daf896c3e3e989b9c899ef34b12ac7e23b1c7e)\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-22T11:48:48.121629Z","published":"2026-04-01T11:46:16Z","database_specific":{"malicious-packages-origins":[{"id":"pypi/2026-03-kube-health-tools/kube-node-health","versions":["1.0.0"],"import_time":"2026-04-01T12:26:29.203893088Z","modified_time":"2026-04-01T11:46:16.456425Z","source":"kam193","sha256":"391555cff14c82156843bee267daf896c3e3e989b9c899ef34b12ac7e23b1c7e"},{"id":"pypi/2026-03-kube-health-tools/kube-node-health","versions":["1.0.0"],"import_time":"2026-04-22T11:28:51.297614234Z","modified_time":"2026-04-01T11:46:16.456425Z","source":"kam193","sha256":"4777264b720c2b41fc408aea73a5f6968b36bbc5cc8f621cf2e7feed750f7421"}],"iocs":{"domains":["sync.geeker.indevs.in"],"urls":["https://github.com/gibunxi4201/kube-node-diag/releases/download/v2.0/kube-diag-linux-amd64-packed"]}},"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/kube-node-health"},{"type":"WEB","url":"https://www.aikido.dev/blog/gpt-proxy-backdoor-npm-pypi-chinese-llm-relay"}],"affected":[{"package":{"name":"kube-node-health","ecosystem":"PyPI","purl":"pkg:pypi/kube-node-health"},"versions":["1.0.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/kube-node-health/MAL-2026-2400.json"}}],"schema_version":"1.7.5","credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}