Malicious code in kafka-roller (PyPI)
--- _-= 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:
- Products
- kafka-roller
- Affected versions
- 99.0.0, 99.0.1, 99.0.2, 99.0.3, 99.0.4, 99.0.5, 99.0.6
- Fixed versions
- Not specified
- CVEs
- Not specified
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 28 Oct 2026, 10:35 UTC · Revision 1
Source evidence
--- _-= 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:
osv:MAL-2026-17703
kafka-roller
Fixed versions: Not specified
Complete source record
{
"id": "7f0769d535153eb4fe68af12a967dedb6ce4786655a61b93889c2e135faf9317",
"url": "https://osv.dev/vulnerability/MAL-2026-17703",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Malicious code in kafka-roller (PyPI)",
"summary": "--- _-= 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: ",
"evidence": "osv:MAL-2026-17703",
"products": [
{
"name": {
"value": "kafka-roller",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "99.0.0",
"evidence": "/affected/0/versions"
},
{
"value": "99.0.1",
"evidence": "/affected/0/versions"
},
{
"value": "99.0.2",
"evidence": "/affected/0/versions"
},
{
"value": "99.0.3",
"evidence": "/affected/0/versions"
},
{
"value": "99.0.4",
"evidence": "/affected/0/versions"
},
{
"value": "99.0.5",
"evidence": "/affected/0/versions"
},
{
"value": "99.0.6",
"evidence": "/affected/0/versions"
}
]
}
],
"severity": "unknown",
"structured": {
"id": "MAL-2026-17703",
"aliases": [
"MAL-2026-17703"
],
"affected": [
{
"package": {
"name": "kafka-roller",
"purl": "pkg:pypi/kafka-roller",
"ecosystem": "PyPI"
},
"versions": [
"99.0.0",
"99.0.1",
"99.0.2",
"99.0.3",
"99.0.4",
"99.0.5",
"99.0.6"
],
"database_specific": {
"cwes": [
{
"name": "Embedded Malicious Code",
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature."
},
{
"name": "Embedded Malicious Code",
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature."
},
{
"name": "Embedded Malicious Code",
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature."
},
{
"name": "Embedded Malicious Code",
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature."
},
{
"name": "Embedded Malicious Code",
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature."
},
{
"name": "Embedded Malicious Code",
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature."
},
{
"name": "Embedded Malicious Code",
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature."
}
],
"source": "https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/kafka-roller/MAL-2026-17703.json",
"indicators": {
"evidence_files": [
{
"path": "setup.py",
"tlsh": "cc617587c4252863d3c760944435e57133227a4bbd0368fa7a9ca395af4e4b690f256d",
"sha256": "eae7f2ea838339c88e681b5cc81af72d5f38d1bbc9445370d69801f6305da549"
}
],
"package_integrity": [
{
"hashes": {
"md5": "3c0f88a4b29842187b5dfc87aa3b2634",
"sha256": "ee992509e0096be2499ecdfc955faddfbce9759489a3d3c6b82181d6cea3007a",
"blake2b_256": "46db756d20fa73fd07876b1aeb4cc1920f767e278fe5017d282832a7cf2f4f18"
},
"filename": "kafka_roller-99.0.1.tar.gz"
}
]
}
}
}
],
"modified": "2026-10-09T01:00:09.234432755Z",
"provider": "osv",
"references": [
"https://pypi.org/project/kafka-roller/99.0.1/",
"https://pypi.org/project/kafka-roller/99.0.2/",
"https://pypi.org/project/kafka-roller/99.0.3/",
"https://pypi.org/project/kafka-roller/99.0.0/",
"https://bad-packages.kam193.eu/pypi/package/kafka-roller",
"https://pypi.org/project/kafka-roller/99.0.6/",
"https://pypi.org/project/kafka-roller/99.0.5/",
"https://pypi.org/project/kafka-roller/99.0.4/"
],
"provider_metadata": {
"malicious-packages-origins": [
{
"sha256": "4b68fa52500e16cab90e8038ae96e2ba1be6c448a8caa40ab3e46dc6d3c26436",
"source": "ossf-package-analysis",
"versions": [
"99.0.0"
],
"import_time": "2026-10-08T21:18:09.008611333Z",
"modified_time": "2026-10-08T20:52:03Z"
},
{
"sha256": "9975eae8f4f212635e09740ba1eee069d57e1d23d9bb46baa49a42eec62a21ca",
"source": "ossf-package-analysis",
"versions": [
"99.0.1"
],
"import_time": "2026-10-08T21:18:09.088134236Z",
"modified_time": "2026-10-08T21:01:49Z"
},
{
"sha256": "ac1ad358c7ec1983efd88a4e93498fcc8a74c746c1e5fff844af271ba21408bb",
"source": "ossf-package-analysis",
"versions": [
"99.0.2"
],
"import_time": "2026-10-08T21:18:09.15889623Z",
"modified_time": "2026-10-08T21:11:07Z"
},
{
"sha256": "4ee3520171e39cfacdb27d6977c474b60ac0a9b785052c7ff40bcdcb48e33f40",
"source": "ossf-package-analysis",
"versions": [
"99.0.3"
],
"import_time": "2026-10-08T21:18:09.221615738Z",
"modified_time": "2026-10-08T21:11:12Z"
},
{
"sha256": "8a94583a1c92780d6fcec5cf1af6f5fda40b4771617ad69d46bf3e4ac6c664bd",
"source": "ossf-package-analysis",
"versions": [
"99.0.4"
],
"import_time": "2026-10-08T21:18:09.281875364Z",
"modified_time": "2026-10-08T21:11:14Z"
},
{
"id": "IN-MAL-2026-021272",
"sha256": "24546f7e39906ebf5712795cd3a1ba82f6c97a7fa6d1a7e79ee28c21b9f75b1f",
"source": "amazon-inspector",
"versions": [
"99.0.1"
],
"import_time": "2026-10-08T21:42:58.133089095Z",
"modified_time": "2026-10-08T21:24:28Z"
},
{
"id": "IN-MAL-2026-021262",
"sha256": "88587450e1da319acaf6b6849ee2018cc87230d4238e7b01a3a0fabdf7553c05",
"source": "amazon-inspector",
"versions": [
"99.0.2"
],
"import_time": "2026-10-08T21:42:57.329167503Z",
"modified_time": "2026-10-08T21:23:04Z"
},
{
"id": "IN-MAL-2026-021264",
"sha256": "b602398e3e20af28a7f30e248544fe30292411a679a0fc6e22cfdf6b9abd95bf",
"source": "amazon-inspector",
"versions": [
"99.0.3"
],
"import_time": "2026-10-08T21:42:57.476378594Z",
"modified_time": "2026-10-08T21:23:21Z"
},
{
"id": "IN-MAL-2026-021271",
"sha256": "1ef3d9dc9185cea1ba30aafd4daa80e2a5b1a5dcf1bc59a4a5a5fbae9a480b17",
"source": "amazon-inspector",
"versions": [
"99.0.0"
],
"import_time": "2026-10-08T21:42:58.026949296Z",
"modified_time": "2026-10-08T21:24:21Z"
},
{
"id": "pypi/GENERIC-standard-pypi-install-pentest/kafka-roller",
"sha256": "ddfe2b638b0889fe0ad773e6d97df2a3649cd830ca5e2ae851a2227ede687b1a",
"source": "kam193",
"versions": [
"99.0.0",
"99.0.1",
"99.0.2",
"99.0.3",
"99.0.4",
"99.0.5",
"99.0.6"
],
"import_time": "2026-10-08T22:18:58.158051275Z",
"modified_time": "2026-10-08T21:38:27.976677Z"
},
{
"id": "IN-MAL-2026-021280",
"sha256": "fda67d41c0a8729b352738f15dc782dd9283c26c63f423605ee949f95d9bb727",
"source": "amazon-inspector",
"versions": [
"99.0.6"
],
"import_time": "2026-10-09T00:53:55.13198279Z",
"modified_time": "2026-10-09T00:05:51Z"
},
{
"id": "IN-MAL-2026-021279",
"sha256": "0c4a4bdb223674e7765b3bcaf930e372d0d72306422e0885035a561c943437ff",
"source": "amazon-inspector",
"versions": [
"99.0.5"
],
"import_time": "2026-10-09T00:53:55.016035029Z",
"modified_time": "2026-10-09T00:05:42Z"
},
{
"id": "IN-MAL-2026-021276",
"sha256": "4490e03c9b281c985d7cc5c877d359f8f3789a2ec44421602137c461ac4a2a52",
"source": "amazon-inspector",
"versions": [
"99.0.4"
],
"import_time": "2026-10-09T00:53:54.816249428Z",
"modified_time": "2026-10-09T00:05:15Z"
}
]
}
},
"related_cves": [],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 108074,
"published_at": "2026-10-08T20:52:03+00:00"
}