---
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'
---

## Overview


---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (4490e03c9b281c985d7cc5c877d359f8f3789a2ec44421602137c461ac4a2a52)
The 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.

## Source: kam193 (ddfe2b638b0889fe0ad773e6d97df2a3649cd830ca5e2ae851a2227ede687b1a)
Installing the package or importing the module exfiltrates basic information about the host, and the package has no other purpose.


---

Category: 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.


Campaign: GENERIC-standard-pypi-install-pentest


Reasons (based on the campaign):


 - The package contains code to exfiltrate basic data from the system, like IP or username. It has a limited risk.


 - The package overrides the install command in setup.py to execute malicious code during installation.

## Source: ossf-package-analysis (4b68fa52500e16cab90e8038ae96e2ba1be6c448a8caa40ab3e46dc6d3c26436)
The OpenSSF Package Analysis project identified 'kafka-roller' @ 99.0.0 (pypi) as malicious.

It is considered malicious because:

- The package communicates with a domain associated with malicious activity.


## Affected packages

- `kafka-roller`

## Remediation

Refer to the advisory for the patched release.
