{"id":"MAL-2026-2327","summary":"Malicious code in kube-health-tools (PyPI)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (4d36d5ed9b1bc15c12e89f48c1228a4f6e3aebe558a67d535655e280b25b4440)\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:10.277747Z","published":"2026-04-01T09:47:27Z","database_specific":{"iocs":{"domains":["sync.geeker.indevs.in"],"urls":["https://github.com/gibunxi4201/kube-node-diag/releases/download/v2.0/kube-diag-linux-amd64-packed"]},"malicious-packages-origins":[{"id":"pypi/2026-03-kube-health-tools/kube-health-tools","source":"kam193","import_time":"2026-04-01T10:29:58.666977887Z","modified_time":"2026-04-01T09:47:27.063117Z","sha256":"4d36d5ed9b1bc15c12e89f48c1228a4f6e3aebe558a67d535655e280b25b4440","versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.8","1.0.9","1.0.10","1.0.11","1.0.12","1.0.13","1.0.14","2.0.0"]},{"id":"pypi/2026-03-kube-health-tools/kube-health-tools","source":"kam193","import_time":"2026-04-22T11:28:51.296613154Z","modified_time":"2026-04-01T09:47:27.063117Z","sha256":"7e538c73cef5f37655f767c9b0c0bafcc0e41875243137f5d9bc6226a49bf7d9","versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.8","1.0.9","1.0.10","1.0.11","1.0.12","1.0.13","1.0.14","2.0.0"]}]},"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-health-tools"},{"type":"WEB","url":"https://www.aikido.dev/blog/gpt-proxy-backdoor-npm-pypi-chinese-llm-relay"}],"affected":[{"package":{"name":"kube-health-tools","ecosystem":"PyPI","purl":"pkg:pypi/kube-health-tools"},"versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.8","1.0.9","1.0.10","1.0.11","1.0.12","1.0.13","1.0.14","2.0.0"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/kube-health-tools/MAL-2026-2327.json"}}],"schema_version":"1.7.5","credits":[{"name":"Kamil Mańkowski (kam193)","contact":["https://github.com/kam193","https://bad-packages.kam193.eu/"],"type":"REPORTER"}]}