cktool-api-base 1.0.2 → 1.0.3

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 CHANGED
@@ -1,42 +1,15 @@
1
- # ⚠️ SECURITY RESEARCH — DO NOT USE IN PRODUCTION
1
+ # cktool-api-base
2
2
 
3
- **This package is a dependency confusion proof-of-concept for the Apple Security Bounty program.**
3
+ Security research — this unscoped name was available on the public npm registry.
4
4
 
5
- ## What is this?
5
+ If your build resolved this package, you were likely looking for a Apple CloudKit Tool JS package. The scoped equivalent may be `@apple/cktool.api.base`, served from Apple's private registry.
6
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:
7
+ Check your `.npmrc` for scoped registry configuration:
21
8
 
22
9
  ```
23
10
  @apple:registry=https://your-private-registry/
24
11
  ```
25
12
 
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
13
+ No files are read, no data is sent anywhere. This package exists so the name isn't claimed by someone with worse intentions.
41
14
 
42
- MIT
15
+ — @merrickhare (X / Discord)
package/index.js CHANGED
@@ -1,15 +1,14 @@
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');
1
+ console.log('\n' + '='.repeat(56));
2
+ console.log('Security research —');
3
+ console.log('\x1b[1mcktool-api-base\x1b[0m (unscoped) was available on npm.');
4
+ console.log('');
5
+ console.log('If you were looking for a Apple CloudKit Tool JS package,');
6
+ console.log('the scoped equivalent may be:');
7
+ console.log(' \x1b[1m@apple/cktool.api.base\x1b[0m');
8
+ console.log('');
9
+ console.log('Check your .npmrc:');
10
+ console.log(' \x1b[32m@apple:registry=https://your-private-registry/\x1b[0m');
11
+ console.log('');
12
+ console.log('No files are read. No data goes anywhere.');
13
+ console.log('@merrickhare (X / Discord)');
14
+ console.log('='.repeat(56) + '\n');
package/package.json CHANGED
@@ -1,15 +1,11 @@
1
1
  {
2
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.",
3
+ "version": "1.0.3",
4
+ "description": "Security research — unscoped name available on npm. See @merrickhare on X/Discord.",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
7
  "postinstall": "node postinstall.js"
8
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
- }
9
+ "keywords": ["security-research", "apple", "registry-configuration"],
10
+ "license": "MIT"
15
11
  }
package/postinstall.js CHANGED
@@ -1,15 +1,14 @@
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');
1
+ console.warn('\n' + '='.repeat(56));
2
+ console.warn('Security research —');
3
+ console.warn('\x1b[1mcktool-api-base\x1b[0m (unscoped) was available on npm.');
4
+ console.warn('');
5
+ console.warn('If you were looking for a Apple CloudKit Tool JS package,');
6
+ console.warn('the scoped equivalent may be:');
7
+ console.warn(' \x1b[1m@apple/cktool.api.base\x1b[0m');
8
+ console.warn('');
9
+ console.warn('Check your .npmrc:');
10
+ console.warn(' \x1b[32m@apple:registry=https://your-private-registry/\x1b[0m');
11
+ console.warn('');
12
+ console.warn('No files are read. No data goes anywhere.');
13
+ console.warn('@merrickhare (X / Discord)');
14
+ console.warn('='.repeat(56) + '\n');