cktool-api-base 1.0.2
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 +42 -0
- package/index.js +15 -0
- package/package.json +15 -0
- package/postinstall.js +15 -0
package/README.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# ⚠️ SECURITY RESEARCH — DO NOT USE IN PRODUCTION
|
|
2
|
+
|
|
3
|
+
**This package is a dependency confusion proof-of-concept for the Apple Security Bounty program.**
|
|
4
|
+
|
|
5
|
+
## What is this?
|
|
6
|
+
|
|
7
|
+
This package demonstrates that the unscoped name `cktool-api-base` was not defensively registered on the public npm registry. Apple's official package is `@apple/cktool.api.base` (CloudKit Tool JS — API base library).
|
|
8
|
+
|
|
9
|
+
If your build system resolves `cktool-api-base` (unscoped) from the public npm registry instead of `@apple/cktool.api.base` from your private registry, this package would be installed instead of Apple's official one.
|
|
10
|
+
|
|
11
|
+
## If you're seeing this
|
|
12
|
+
|
|
13
|
+
Your project or build system is resolving an unscoped package name from the public npm registry. The correct package is:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm uninstall cktool-api-base
|
|
17
|
+
npm install @apple/cktool.api.base
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
You should also configure your `.npmrc` to scope internal packages to your private registry:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
@apple:registry=https://your-private-registry/
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## This package does NOT
|
|
27
|
+
|
|
28
|
+
- Read files from your system
|
|
29
|
+
- Access credentials or environment variables
|
|
30
|
+
- Establish persistent access
|
|
31
|
+
- Modify system state
|
|
32
|
+
- Exfiltrate sensitive data
|
|
33
|
+
- Send telemetry or pingback beacons
|
|
34
|
+
|
|
35
|
+
## Contact
|
|
36
|
+
|
|
37
|
+
- Researcher: @merrickhare
|
|
38
|
+
- Program: Apple Security Bounty
|
|
39
|
+
|
|
40
|
+
## License
|
|
41
|
+
|
|
42
|
+
MIT
|
package/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// ⚠️ SECURITY RESEARCH — Apple Security Bounty
|
|
2
|
+
// Dependency confusion PoC: cktool-api-base vs @apple/cktool.api.base
|
|
3
|
+
// If you see this, your build pulled the wrong package.
|
|
4
|
+
console.log('\n' + '='.repeat(60));
|
|
5
|
+
console.log('\x1b[33m⚠️ SECURITY RESEARCH — Apple Security Bounty\x1b[0m');
|
|
6
|
+
console.log('='.repeat(60));
|
|
7
|
+
console.log('\nYour project required \x1b[1mcktool-api-base\x1b[0m (unscoped).');
|
|
8
|
+
console.log('This is NOT Apple\'s official CloudKit Tool JS package.\n');
|
|
9
|
+
console.log('The correct package is \x1b[1m@apple/cktool.api.base\x1b[0m\n');
|
|
10
|
+
console.log('Fix:');
|
|
11
|
+
console.log('\x1b[32m npm uninstall cktool-api-base\x1b[0m');
|
|
12
|
+
console.log('\x1b[32m npm install @apple/cktool.api.base\x1b[0m\n');
|
|
13
|
+
console.log('This PoC does NOT read files, access credentials, or');
|
|
14
|
+
console.log('exfiltrate data. See https://npmjs.com/package/cktool-api-base\n');
|
|
15
|
+
console.log('='.repeat(60) + '\n');
|
package/package.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cktool-api-base",
|
|
3
|
+
"version": "1.0.2",
|
|
4
|
+
"description": "⚠️ SECURITY RESEARCH — Apple Bug Bounty dependency confusion PoC. The correct package is @apple/cktool.api.base.",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"postinstall": "node postinstall.js"
|
|
8
|
+
},
|
|
9
|
+
"keywords": ["security-research", "apple", "cloudkit", "cktool"],
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/mapkit-loader/cktool-api-base"
|
|
14
|
+
}
|
|
15
|
+
}
|
package/postinstall.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// ⚠️ SECURITY RESEARCH — Apple Security Bounty
|
|
2
|
+
// Dependency confusion PoC: cktool-api-base vs @apple/cktool.api.base
|
|
3
|
+
|
|
4
|
+
console.warn('\n' + '='.repeat(60));
|
|
5
|
+
console.warn('\x1b[33m⚠️ SECURITY RESEARCH — Apple Security Bounty\x1b[0m');
|
|
6
|
+
console.warn('='.repeat(60));
|
|
7
|
+
console.warn('\nThis package (\x1b[1mcktool-api-base\x1b[0m) is a dependency confusion PoC.');
|
|
8
|
+
console.warn('It is NOT Apple\'s official CloudKit Tool JS package.\n');
|
|
9
|
+
console.warn('The correct package is \x1b[1m@apple/cktool.api.base\x1b[0m\n');
|
|
10
|
+
console.warn('Fix:');
|
|
11
|
+
console.warn('\x1b[32m npm uninstall cktool-api-base\x1b[0m');
|
|
12
|
+
console.warn('\x1b[32m npm install @apple/cktool.api.base\x1b[0m\n');
|
|
13
|
+
console.warn('This PoC does NOT read files, access credentials, or');
|
|
14
|
+
console.warn('exfiltrate data. See the README for full disclosure.\n');
|
|
15
|
+
console.warn('='.repeat(60) + '\n');
|