{"id":"MAL-2026-17703","title":"Malicious code in kafka-roller (PyPI)","summary":"Malicious code in kafka-roller (PyPI)","severity":"critical","exploited":true,"vendor":"kafka-roller","product":"kafka-roller","ecosystem":"pip","affected":["kafka-roller"],"published":"2026-10-08","updated":"2026-10-09","sourceUpdated":"2026-10-09T01:00:09.234432755Z","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/MAL-2026-17703","references":[{"url":"https://pypi.org/project/kafka-roller/99.0.1/"},{"url":"https://pypi.org/project/kafka-roller/99.0.2/"},{"url":"https://pypi.org/project/kafka-roller/99.0.3/"},{"url":"https://pypi.org/project/kafka-roller/99.0.0/"},{"url":"https://bad-packages.kam193.eu/pypi/package/kafka-roller"},{"url":"https://pypi.org/project/kafka-roller/99.0.6/"},{"url":"https://pypi.org/project/kafka-roller/99.0.5/"},{"url":"https://pypi.org/project/kafka-roller/99.0.4/"}],"tags":["osv","pip","malware"],"ingestedAt":"2026-10-09T07:36:09.688Z","slug":"MAL-2026-17703","body":"## Overview\n\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (4490e03c9b281c985d7cc5c877d359f8f3789a2ec44421602137c461ac4a2a52)\nThe package is published to PyPI under the name kafka-roller with metadata impersonating Tesla's teslamotors/kafka-helmsman project (homepage points at github.com/teslamotors/kafka-helmsman while the publisher is an unaffiliated account), and version 99.0.4 is pinned implausibly high — the dependency-confusion squat shape. setup.py starts a module-level daemon thread during pip's metadata/wheel build that collects hostname, current working directory, platform information, a timestamp and a UUID, and transmits them via HTTPS POST to https://webhook.site/bf5cb178-e0cf-43b6-8b1e-fb5d2f6ea9c9 and via HTTPS GET plus DNS lookups to a subdomain of oast.site (an interactsh out-of-band collector). The DNS channel is driven by subprocess invocations of nslookup/getent/dig against an attacker-chosen hostname, providing a secondary exfiltration path that bypasses HTTP egress filtering. The beacon fires on any pip processing of the sdist without installer consent, and leaks internal host and build-environment identifiers for any build system that misresolves the kafka-roller name to this PyPI package. A self-description as 'dependency-confusion security research' does not change the behavior: install-time out-of-band callbacks carrying host identifiers to attacker-controlled collectors are exfiltration regardless of framing.\n\n## Source: kam193 (ddfe2b638b0889fe0ad773e6d97df2a3649cd830ca5e2ae851a2227ede687b1a)\nInstalling the package or importing the module exfiltrates basic information about the host, and the package has no other purpose.\n\n\n---\n\nCategory: PROBABLY_PENTEST - Packages looking like typical pentest packages, but also anything that looks like testing, exploring pre-prepared kits, research & co, with clearly low-harm possibilities.\n\n\nCampaign: GENERIC-standard-pypi-install-pentest\n\n\nReasons (based on the campaign):\n\n\n - The package contains code to exfiltrate basic data from the system, like IP or username. It has a limited risk.\n\n\n - The package overrides the install command in setup.py to execute malicious code during installation.\n\n## Source: ossf-package-analysis (4b68fa52500e16cab90e8038ae96e2ba1be6c448a8caa40ab3e46dc6d3c26436)\nThe OpenSSF Package Analysis project identified 'kafka-roller' @ 99.0.0 (pypi) as malicious.\n\nIt is considered malicious because:\n\n- The package communicates with a domain associated with malicious activity.\n\n\n## Affected packages\n\n- `kafka-roller`\n\n## Remediation\n\nRefer to the advisory for the patched release.","depth":"abyssal","depthScore":70,"depthScoreParts":{"impact":52.3,"likelihood":0,"exploitation":18,"ransomware":0},"changes":[]}