codeslick-cli 1.0.0 → 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.
Files changed (21) hide show
  1. package/README.md +60 -14
  2. package/dist/src/lib/analyzers/java/security-checks/enhanced-supply-chain.d.ts +1 -0
  3. package/dist/src/lib/analyzers/java/security-checks/enhanced-supply-chain.d.ts.map +1 -1
  4. package/dist/src/lib/analyzers/java/security-checks/enhanced-supply-chain.js +55 -0
  5. package/dist/src/lib/analyzers/java/security-checks/enhanced-supply-chain.js.map +1 -1
  6. package/dist/src/lib/analyzers/javascript/security-checks/access-control.d.ts.map +1 -1
  7. package/dist/src/lib/analyzers/javascript/security-checks/access-control.js +25 -5
  8. package/dist/src/lib/analyzers/javascript/security-checks/access-control.js.map +1 -1
  9. package/dist/src/lib/analyzers/javascript/security-checks/exception-handling.d.ts +2 -1
  10. package/dist/src/lib/analyzers/javascript/security-checks/exception-handling.d.ts.map +1 -1
  11. package/dist/src/lib/analyzers/javascript/security-checks/exception-handling.js +54 -1
  12. package/dist/src/lib/analyzers/javascript/security-checks/exception-handling.js.map +1 -1
  13. package/dist/src/lib/analyzers/javascript/security-checks/software-integrity.d.ts +1 -0
  14. package/dist/src/lib/analyzers/javascript/security-checks/software-integrity.d.ts.map +1 -1
  15. package/dist/src/lib/analyzers/javascript/security-checks/software-integrity.js +30 -0
  16. package/dist/src/lib/analyzers/javascript/security-checks/software-integrity.js.map +1 -1
  17. package/dist/src/lib/analyzers/typescript/security-checks/access-control.d.ts +1 -0
  18. package/dist/src/lib/analyzers/typescript/security-checks/access-control.d.ts.map +1 -1
  19. package/dist/src/lib/analyzers/typescript/security-checks/access-control.js +47 -0
  20. package/dist/src/lib/analyzers/typescript/security-checks/access-control.js.map +1 -1
  21. package/package.json +3 -3
package/README.md CHANGED
@@ -17,7 +17,23 @@ Catch security vulnerabilities before they enter your codebase with automated pr
17
17
 
18
18
  ## Installation
19
19
 
20
- ### Global Installation (Recommended)
20
+ ### Option 1: Use `npx` (Recommended - No Installation Required)
21
+
22
+ Run CodeSlick directly without installation:
23
+
24
+ ```bash
25
+ npx codeslick-cli --help
26
+ npx codeslick-cli init
27
+ npx codeslick-cli scan
28
+ ```
29
+
30
+ **Benefits:**
31
+ - ✅ No permission issues
32
+ - ✅ Always runs latest version
33
+ - ✅ Works on all systems
34
+ - ✅ No global pollution
35
+
36
+ ### Option 2: Global Installation
21
37
 
22
38
  ```bash
23
39
  npm install -g codeslick-cli
@@ -33,10 +49,13 @@ cs --version
33
49
 
34
50
  Both commands work identically. Use `cs` for faster typing!
35
51
 
36
- ### Local Installation (Per Project)
52
+ **Note:** On macOS/Linux, you may encounter permission errors. See [Troubleshooting](#eacces-permission-denied-error-on-macoslinux) for solutions.
53
+
54
+ ### Option 3: Local Installation (Per Project)
37
55
 
38
56
  ```bash
39
57
  npm install --save-dev codeslick-cli
58
+ npx codeslick-cli init
40
59
  ```
41
60
 
42
61
  ## Quick Start
@@ -45,9 +64,9 @@ npm install --save-dev codeslick-cli
45
64
 
46
65
  ```bash
47
66
  cd your-project/
48
- codeslick init
49
- # or use the shorter alias:
50
- cs init
67
+ npx codeslick-cli init
68
+ # or if you installed globally:
69
+ codeslick init # or: cs init
51
70
  ```
52
71
 
53
72
  This will:
@@ -271,8 +290,7 @@ jobs:
271
290
  - uses: actions/setup-node@v3
272
291
  with:
273
292
  node-version: 18
274
- - run: npm install -g @codeslick/cli
275
- - run: codeslick scan --json > results.json
293
+ - run: npx codeslick-cli scan --json > results.json
276
294
  - uses: actions/upload-artifact@v3
277
295
  if: always()
278
296
  with:
@@ -286,8 +304,7 @@ jobs:
286
304
  codeslick:
287
305
  image: node:18
288
306
  script:
289
- - npm install -g @codeslick/cli
290
- - codeslick scan --json > results.json
307
+ - npx codeslick-cli scan --json > results.json
291
308
  artifacts:
292
309
  when: always
293
310
  paths:
@@ -302,8 +319,7 @@ pipeline {
302
319
  stages {
303
320
  stage('Security Scan') {
304
321
  steps {
305
- sh 'npm install -g @codeslick/cli'
306
- sh 'codeslick scan --json > results.json'
322
+ sh 'npx codeslick-cli scan --json > results.json'
307
323
  }
308
324
  }
309
325
  }
@@ -367,19 +383,49 @@ chmod +x .git/hooks/pre-commit
367
383
  codeslick init --force
368
384
  ```
369
385
 
386
+ ### "EACCES: permission denied" error on macOS/Linux
387
+
388
+ **Problem**: Permission denied when installing globally:
389
+ ```bash
390
+ npm error code EACCES
391
+ npm error syscall mkdir
392
+ npm error path /usr/local/lib/node_modules/codeslick-cli
393
+ ```
394
+
395
+ **✅ Solution 1 - Use `npx` (Recommended - No installation needed)**:
396
+ ```bash
397
+ npx codeslick-cli --help
398
+ npx codeslick-cli init
399
+ npx codeslick-cli scan
400
+ ```
401
+
402
+ **Solution 2 - Fix npm permissions (Best long-term)**:
403
+ ```bash
404
+ mkdir ~/.npm-global
405
+ npm config set prefix '~/.npm-global'
406
+ echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
407
+ source ~/.zshrc
408
+ npm install -g codeslick-cli
409
+ ```
410
+
411
+ **Solution 3 - Use sudo (Not recommended)**:
412
+ ```bash
413
+ sudo npm install -g codeslick-cli
414
+ ```
415
+
370
416
  ### "Command not found: codeslick" error
371
417
 
372
418
  **Problem**: CLI not installed globally or not in PATH.
373
419
 
374
420
  **Solution**: Install globally:
375
421
  ```bash
376
- npm install -g @codeslick/cli
422
+ npm install -g codeslick-cli
377
423
  ```
378
424
 
379
425
  **Solution**: Use npx (no install required):
380
426
  ```bash
381
- npx @codeslick/cli init
382
- npx @codeslick/cli scan
427
+ npx codeslick-cli init
428
+ npx codeslick-cli scan
383
429
  ```
384
430
 
385
431
  ### Slow scanning performance
@@ -16,6 +16,7 @@ import { SecurityVulnerability } from '../../types';
16
16
  * - Check #4: Unsigned JAR usage (HIGH) - NEW OWASP 2025
17
17
  * - Check #5: Dependency confusion (HIGH) - NEW OWASP 2025
18
18
  * - Check #6: Runtime bytecode loading (CRITICAL) - NEW OWASP 2025
19
+ * - Check #7: Downloaded code execution without integrity verification (CRITICAL) - NEW Jan 10, 2026
19
20
  *
20
21
  * @param lines - Array of code lines
21
22
  * @returns Array of security vulnerabilities found
@@ -1 +1 @@
1
- {"version":3,"file":"enhanced-supply-chain.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/java/security-checks/enhanced-supply-chain.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EAAE,GACd,qBAAqB,EAAE,CA2PzB"}
1
+ {"version":3,"file":"enhanced-supply-chain.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/java/security-checks/enhanced-supply-chain.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EAAE,GACd,qBAAqB,EAAE,CAoUzB"}
@@ -19,6 +19,7 @@ const createVulnerability_1 = require("../utils/createVulnerability");
19
19
  * - Check #4: Unsigned JAR usage (HIGH) - NEW OWASP 2025
20
20
  * - Check #5: Dependency confusion (HIGH) - NEW OWASP 2025
21
21
  * - Check #6: Runtime bytecode loading (CRITICAL) - NEW OWASP 2025
22
+ * - Check #7: Downloaded code execution without integrity verification (CRITICAL) - NEW Jan 10, 2026
22
23
  *
23
24
  * @param lines - Array of code lines
24
25
  * @returns Array of security vulnerabilities found
@@ -28,6 +29,8 @@ function checkEnhancedSupplyChain(lines) {
28
29
  let inMultiLineComment = false;
29
30
  // Track user input variables for dynamic class loading detection
30
31
  const userInputVars = new Set();
32
+ // Track downloaded files (from URL.openStream, HttpClient, etc.)
33
+ const downloadedFiles = new Map(); // filename -> line number where downloaded
31
34
  lines.forEach((line, index) => {
32
35
  const trimmedLine = line.trim();
33
36
  // CRITICAL: Track multi-line comment blocks (/* ... */)
@@ -58,6 +61,19 @@ function checkEnhancedSupplyChain(lines) {
58
61
  userInputVars.add(varMatch[1]);
59
62
  }
60
63
  }
64
+ // Track downloaded files (URL.openStream, Files.copy from URL, HttpClient downloads)
65
+ // Pattern: Files.copy(in, Paths.get("plugin.jar")), or similar download operations
66
+ if (lowerLine.includes('files.copy') || lowerLine.includes('.download') ||
67
+ lowerLine.includes('url.openstream') || lowerLine.includes('httpclient')) {
68
+ // Extract filename from Paths.get("filename") or similar patterns
69
+ const filenameMatch = trimmedLine.match(/paths\.get\s*\(\s*["']([^"']+)["']/i) ||
70
+ trimmedLine.match(/file\s*\(\s*["']([^"']+)["']/i) ||
71
+ trimmedLine.match(/outputstream\s*\(\s*["']([^"']+)["']/i);
72
+ if (filenameMatch) {
73
+ const filename = filenameMatch[1];
74
+ downloadedFiles.set(filename, index + 1);
75
+ }
76
+ }
61
77
  // Check #1: Dynamic class loading with user input (ENHANCED OWASP 2025)
62
78
  if (lowerLine.includes('class.forname(') || lowerLine.includes('classloader.loadclass(') ||
63
79
  lowerLine.includes('.loadclass(')) {
@@ -172,6 +188,45 @@ function checkEnhancedSupplyChain(lines) {
172
188
  'Complete application and system compromise'
173
189
  ], 'return defineClass(null, bytecode, 0, bytecode.length);', '// Validate bytecode signatures before loading\n// Or use standard class loading mechanisms instead', 'Runtime bytecode loading should be avoided or bytecode should be cryptographically verified'));
174
190
  }
191
+ // Check #7: Downloaded code execution without integrity verification - NEW Jan 10, 2026
192
+ // Pattern: Runtime.exec("java -jar downloaded_file.jar") without checksum/signature verification
193
+ if (lowerLine.includes('runtime.exec') || lowerLine.includes('processbuilder')) {
194
+ // Check if executing a JAR file
195
+ const isJarExecution = lowerLine.includes('.jar') || lowerLine.includes('java -jar');
196
+ if (isJarExecution) {
197
+ // Check if this JAR was downloaded (exists in downloadedFiles map)
198
+ let isDownloadedFile = false;
199
+ for (const [filename] of downloadedFiles) {
200
+ if (trimmedLine.includes(filename)) {
201
+ isDownloadedFile = true;
202
+ break;
203
+ }
204
+ }
205
+ // Check for checksum/signature verification in surrounding lines
206
+ const contextLines = lines.slice(Math.max(0, index - 20), Math.min(index + 5, lines.length));
207
+ const hasIntegrityCheck = contextLines.some(l => {
208
+ const lowerContext = l.toLowerCase();
209
+ return lowerContext.includes('checksum') ||
210
+ lowerContext.includes('sha256') ||
211
+ lowerContext.includes('sha512') ||
212
+ lowerContext.includes('md5') ||
213
+ lowerContext.includes('verify') && lowerContext.includes('hash') ||
214
+ lowerContext.includes('messagedigest') ||
215
+ lowerContext.includes('signature') && lowerContext.includes('verify');
216
+ });
217
+ // Flag if it's a JAR execution (especially if downloaded) without integrity checks
218
+ if (!hasIntegrityCheck && (isDownloadedFile || lowerLine.includes('download') || lowerLine.includes('http'))) {
219
+ vulnerabilities.push((0, createVulnerability_1.createJavaSecurityVulnerability)('downloaded-code-execution-without-verification', 'CRITICAL: Executing downloaded JAR without checksum/signature verification', 'Verify JAR integrity using SHA-256 checksum or digital signature before execution', index + 1, 'Executing downloaded code (JAR files) without integrity verification allows attackers to serve malicious code via man-in-the-middle attacks or compromised servers. The application will execute tampered code leading to complete system compromise.', 'URL url = new URL("http://example.com/plugin.jar");\nInputStream in = url.openStream();\nFiles.copy(in, Paths.get("plugin.jar"));\nRuntime.getRuntime().exec("java -jar plugin.jar"); // No integrity check!', [
220
+ 'Remote Code Execution from tampered downloads',
221
+ 'Man-in-the-middle attacks serving malicious JARs',
222
+ 'Supply chain compromise via infected downloads',
223
+ 'Complete system takeover',
224
+ 'Backdoor installation',
225
+ 'Data exfiltration and credential theft'
226
+ ], 'Runtime.getRuntime().exec("java -jar plugin.jar"); // No checksum verification', '// Verify SHA-256 checksum before execution\nString expectedChecksum = "abc123...";\nString actualChecksum = calculateSHA256("plugin.jar");\nif (!expectedChecksum.equals(actualChecksum)) {\n throw new SecurityException("JAR integrity check failed");\n}\n// OR verify digital signature\nif (!verifyJarSignature("plugin.jar")) {\n throw new SecurityException("JAR signature invalid");\n}\nRuntime.getRuntime().exec("java -jar plugin.jar");', 'Always verify downloaded code using SHA-256/SHA-512 checksums or digital signatures before execution. Never execute untrusted code without integrity verification.'));
227
+ }
228
+ }
229
+ }
175
230
  });
176
231
  return vulnerabilities;
177
232
  }
@@ -1 +1 @@
1
- {"version":3,"file":"enhanced-supply-chain.js","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/java/security-checks/enhanced-supply-chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enhanced-supply-chain.js","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/java/security-checks/enhanced-supply-chain.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/javascript/security-checks/access-control.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EAAE,GACd,qBAAqB,EAAE,CAoNzB"}
1
+ {"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/javascript/security-checks/access-control.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EAAE,GACd,qBAAqB,EAAE,CA4OzB"}
@@ -24,6 +24,8 @@ const createVulnerability_1 = require("../utils/createVulnerability");
24
24
  function checkAccessControl(lines) {
25
25
  const vulnerabilities = [];
26
26
  let inMultiLineComment = false;
27
+ // Track variables assigned from req.params/req.query/req.body for IDOR detection
28
+ const userInputVariables = new Map();
27
29
  lines.forEach((line, index) => {
28
30
  const lineNumber = index + 1;
29
31
  const trimmed = line.trim();
@@ -38,6 +40,14 @@ function checkAccessControl(lines) {
38
40
  // Skip comments and empty lines
39
41
  if (!trimmed || inMultiLineComment || trimmed.startsWith('//') || trimmed.startsWith('*'))
40
42
  return;
43
+ // Track variable assignments from user input (for IDOR detection)
44
+ // Pattern: const userId = req.params.id, const id = req.query.userId, let userInput = req.body.data
45
+ const userInputAssignment = trimmed.match(/(?:const|let|var)\s+(\w+)\s*=\s*(req\.(?:params|query|body)\.[\w.]+)/i);
46
+ if (userInputAssignment) {
47
+ const varName = userInputAssignment[1];
48
+ const source = userInputAssignment[2];
49
+ userInputVariables.set(varName, { source, lineNumber });
50
+ }
41
51
  // OWASP A01:2025 - Broken Access Control
42
52
  // Check #92: Missing authentication middleware - HIGH
43
53
  // Pattern: app.get/post/put/delete/patch routes without authentication
@@ -110,11 +120,21 @@ function checkAccessControl(lines) {
110
120
  }
111
121
  // OWASP A01:2025 - Broken Access Control
112
122
  // Check #94: Insecure Direct Object Reference (IDOR) - HIGH
113
- // Pattern: Database queries using req.params/req.query without ownership validation
114
- // Examples: getUserById(req.params.id), findOne({ _id: req.query.userId })
115
- const idorPattern = /(getUserById|findById|findOne|getById|deleteById|updateById|get\w+ById)\s*\(\s*(req\.params|req\.query|req\.body)/i;
116
- const dbAccessPattern = /\.(find|findOne|update|delete|remove)\s*\(\s*\{\s*(_?id|userId|user_id|accountId|account_id)\s*:\s*(req\.params|req\.query|req\.body)/i;
117
- if (trimmed.match(idorPattern) || trimmed.match(dbAccessPattern)) {
123
+ // Pattern: Database queries using req.params/req.query OR tracked variables without ownership validation
124
+ // Examples: getUserById(req.params.id), getUserById(userId) where userId = req.params.id
125
+ const idorPattern = /(getUserById|findById|findOne|getById|deleteById|updateById|get\w+ById|get\w+|fetch\w+|load\w+)\s*\(\s*(req\.params|req\.query|req\.body|[\w.]+)\s*[),]/i;
126
+ const dbAccessPattern = /\.(find|findOne|update|delete|remove)\s*\(\s*\{\s*(_?id|userId|user_id|accountId|account_id)\s*:\s*(req\.params|req\.query|req\.body|[\w]+)\s*[},]/i;
127
+ const isIdorMatch = trimmed.match(idorPattern) || trimmed.match(dbAccessPattern);
128
+ // Check if using tracked user input variable
129
+ let usesTrackedVariable = false;
130
+ for (const [varName] of userInputVariables) {
131
+ // Check if the line contains the tracked variable in a database access context
132
+ if (isIdorMatch && trimmed.includes(varName)) {
133
+ usesTrackedVariable = true;
134
+ break;
135
+ }
136
+ }
137
+ if (isIdorMatch && (trimmed.match(/req\.(params|query|body)/i) || usesTrackedVariable)) {
118
138
  // Check if there's ownership validation in next 10 lines
119
139
  const nextLines = lines.slice(index, Math.min(index + 10, lines.length));
120
140
  const hasOwnershipCheck = nextLines.some(l => {
@@ -1 +1 @@
1
- {"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/javascript/security-checks/access-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/javascript/security-checks/access-control.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { SecurityVulnerability } from '../../types';
9
9
  /**
10
10
  * Checks for exception handling security vulnerabilities in JavaScript code
11
11
  *
12
- * Covers (Enhanced Dec 30, 2025 - Phase 3):
12
+ * Covers (Enhanced Dec 30, 2025 - Phase 3 | Jan 10, 2026 - User Testing Fixes):
13
13
  * - Check #1: Unhandled Promise rejections (HIGH)
14
14
  * - Check #2: Empty catch blocks (MEDIUM) - FIXED pattern
15
15
  * - Check #3: Catching and ignoring errors (MEDIUM)
@@ -20,6 +20,7 @@ import { SecurityVulnerability } from '../../types';
20
20
  * - Check #8: Sensitive data in logs (CRITICAL) - NEW
21
21
  * - Check #9: Log injection vulnerabilities (HIGH) - NEW
22
22
  * - Check #10: Missing error logging in critical operations (MEDIUM) - NEW
23
+ * - Check #11: Fail-open financial operations (CRITICAL) - NEW Jan 10, 2026
23
24
  *
24
25
  * @param lines - Array of code lines
25
26
  * @returns Array of security vulnerabilities found
@@ -1 +1 @@
1
- {"version":3,"file":"exception-handling.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/javascript/security-checks/exception-handling.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EAAE,GACd,qBAAqB,EAAE,CAmWzB"}
1
+ {"version":3,"file":"exception-handling.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/javascript/security-checks/exception-handling.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EAAE,GACd,qBAAqB,EAAE,CA0azB"}
@@ -12,7 +12,7 @@ const createVulnerability_1 = require("../utils/createVulnerability");
12
12
  /**
13
13
  * Checks for exception handling security vulnerabilities in JavaScript code
14
14
  *
15
- * Covers (Enhanced Dec 30, 2025 - Phase 3):
15
+ * Covers (Enhanced Dec 30, 2025 - Phase 3 | Jan 10, 2026 - User Testing Fixes):
16
16
  * - Check #1: Unhandled Promise rejections (HIGH)
17
17
  * - Check #2: Empty catch blocks (MEDIUM) - FIXED pattern
18
18
  * - Check #3: Catching and ignoring errors (MEDIUM)
@@ -23,6 +23,7 @@ const createVulnerability_1 = require("../utils/createVulnerability");
23
23
  * - Check #8: Sensitive data in logs (CRITICAL) - NEW
24
24
  * - Check #9: Log injection vulnerabilities (HIGH) - NEW
25
25
  * - Check #10: Missing error logging in critical operations (MEDIUM) - NEW
26
+ * - Check #11: Fail-open financial operations (CRITICAL) - NEW Jan 10, 2026
26
27
  *
27
28
  * @param lines - Array of code lines
28
29
  * @returns Array of security vulnerabilities found
@@ -221,6 +222,58 @@ function checkExceptionHandling(lines) {
221
222
  ], 'await db.users.update({ id }, { role: "admin" }); // No error handling', 'try {\n await db.users.update({ id }, { role: "admin" });\n logger.info("User role updated", { userId: id, newRole: "admin" });\n} catch (err) {\n logger.error("Failed to update user role", { userId: id, error: err });\n throw err;\n}', 'Wrap all critical operations in try-catch blocks with comprehensive error logging including context (user, operation, timestamp).'));
222
223
  }
223
224
  }
225
+ // Check #11: Fail-open financial operations (CRITICAL) - NEW Jan 10, 2026
226
+ // Pattern: Financial operations in try-catch that return success status even when error occurs
227
+ // Example: try { db.insert(...) } catch (e) { } res.send({ status: "processed" });
228
+ const isFinancialRoute = /\.(post|put)\s*\(\s*['"`].*\/(billing|charge|payment|transfer|withdraw|deposit)/i.test(trimmedLine);
229
+ const isFinancialOperation = /(db|database)\.(insert|update|execute|query).*\b(charges?|payments?|transactions?|billing)\b/i.test(trimmedLine) ||
230
+ /(stripe|paypal|charge|payment|bill)\./i.test(trimmedLine);
231
+ if (isFinancialRoute || isFinancialOperation) {
232
+ // Check for try-catch pattern with success response outside
233
+ const contextLines = lines.slice(index, Math.min(index + 15, lines.length));
234
+ const hasCatchBlock = contextLines.some(l => l.toLowerCase().includes('catch'));
235
+ const hasSuccessResponse = contextLines.some(l => {
236
+ const lowerLine = l.toLowerCase();
237
+ return (lowerLine.includes('res.send') || lowerLine.includes('res.json')) &&
238
+ (lowerLine.includes('success') || lowerLine.includes('processed') || lowerLine.includes('complete') || lowerLine.includes('ok'));
239
+ });
240
+ // Check if success response is INSIDE the catch block (which is wrong)
241
+ // OR if success response is OUTSIDE try-catch (always executed regardless of error)
242
+ if (hasCatchBlock && hasSuccessResponse) {
243
+ // Find if the success response is inside or outside the catch
244
+ let catchBlockIndex = -1;
245
+ let successResponseIndex = -1;
246
+ let catchBlockEnds = -1;
247
+ for (let i = 0; i < contextLines.length; i++) {
248
+ const lowerCtxLine = contextLines[i].toLowerCase();
249
+ if (lowerCtxLine.includes('catch')) {
250
+ catchBlockIndex = i;
251
+ }
252
+ if ((lowerCtxLine.includes('res.send') || lowerCtxLine.includes('res.json')) &&
253
+ (lowerCtxLine.includes('success') || lowerCtxLine.includes('processed') || lowerCtxLine.includes('complete') || lowerCtxLine.includes('ok'))) {
254
+ successResponseIndex = i;
255
+ }
256
+ // Track catch block closing (simple heuristic: closing brace after catch)
257
+ if (catchBlockIndex !== -1 && catchBlockEnds === -1 && contextLines[i].trim() === '}') {
258
+ catchBlockEnds = i;
259
+ }
260
+ }
261
+ // If success response is AFTER catch block closes, OR inside catch block, it's fail-open
262
+ const isFailOpen = (successResponseIndex !== -1 && catchBlockIndex !== -1 && catchBlockEnds !== -1 && successResponseIndex > catchBlockEnds) ||
263
+ (successResponseIndex !== -1 && catchBlockIndex !== -1 && successResponseIndex > catchBlockIndex && successResponseIndex < catchBlockEnds);
264
+ if (isFailOpen) {
265
+ vulnerabilities.push((0, createVulnerability_1.createJavaScriptSecurityVulnerability)('fail-open-financial-operation', 'CRITICAL: Financial operation returns success even when failing - silent transaction failure', 'Return error status on failure: catch (err) { logger.error(...); return res.status(500).send({ error: "Transaction failed" }); }', index + 1, 'Financial operations that return success status (200 OK) even when database operations fail create silent transaction failures. Users believe their payment/charge succeeded when it actually failed, leading to financial discrepancies, accounting errors, and customer disputes.', 'try { await db.query("INSERT INTO charges...") } catch (e) { console.error(e) } res.send({ status: "processed" }) → Database fails but response says "processed" → Customer charged but no record → Financial loss', [
266
+ 'Silent financial transaction failures',
267
+ 'Customer overcharging (charged but no record)',
268
+ 'Financial reconciliation errors',
269
+ 'Accounting discrepancies and audit failures',
270
+ 'Customer disputes and chargebacks',
271
+ 'Compliance violations (SOX, PCI-DSS)',
272
+ 'Business revenue loss from unrecorded transactions'
273
+ ], 'try {\n await db.query("INSERT INTO charges(amount) VALUES(?)", [amount]);\n} catch (e) {\n console.error(e);\n}\nres.send({ status: "processed" }); // WRONG: Always returns success', 'try {\n await db.query("INSERT INTO charges(amount) VALUES(?)", [amount]);\n logger.info("Charge recorded", { amount, userId });\n res.send({ status: "processed", success: true });\n} catch (err) {\n logger.error("Charge failed", { amount, userId, error: err });\n return res.status(500).send({ error: "Transaction failed", success: false });\n}', 'Financial operations MUST return error status (4xx/5xx) when transactions fail. Never report success when the operation failed. Implement proper audit logging for all financial events.'));
274
+ }
275
+ }
276
+ }
224
277
  });
225
278
  return vulnerabilities;
226
279
  }
@@ -1 +1 @@
1
- {"version":3,"file":"exception-handling.js","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/javascript/security-checks/exception-handling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exception-handling.js","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/javascript/security-checks/exception-handling.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ import { SecurityVulnerability } from '../../types';
17
17
  * - Check #2: Missing Subresource Integrity (SRI) for CDN scripts (MEDIUM)
18
18
  * - Check #3: Package installation without lock files (MEDIUM)
19
19
  * - Check #4: Downloading executable code from HTTP (not HTTPS) (HIGH)
20
+ * - Check #5: Writing untrusted data to config files without validation (HIGH) - NEW Jan 10, 2026
20
21
  *
21
22
  * @param lines - Array of code lines
22
23
  * @returns Array of security vulnerabilities found
@@ -1 +1 @@
1
- {"version":3,"file":"software-integrity.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/javascript/security-checks/software-integrity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EAAE,GACd,qBAAqB,EAAE,CAoPzB"}
1
+ {"version":3,"file":"software-integrity.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/javascript/security-checks/software-integrity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EAAE,GACd,qBAAqB,EAAE,CAiSzB"}
@@ -20,6 +20,7 @@ const createVulnerability_1 = require("../utils/createVulnerability");
20
20
  * - Check #2: Missing Subresource Integrity (SRI) for CDN scripts (MEDIUM)
21
21
  * - Check #3: Package installation without lock files (MEDIUM)
22
22
  * - Check #4: Downloading executable code from HTTP (not HTTPS) (HIGH)
23
+ * - Check #5: Writing untrusted data to config files without validation (HIGH) - NEW Jan 10, 2026
23
24
  *
24
25
  * @param lines - Array of code lines
25
26
  * @returns Array of security vulnerabilities found
@@ -162,6 +163,35 @@ function checkSoftwareIntegrity(lines) {
162
163
  ], 'npm install --registry=http://custom-registry.com package', 'npm install --registry=https://custom-registry.com package\nnpm audit signatures // Verify package integrity', 'Use package signature verification and trusted registries to prevent supply chain attacks.'));
163
164
  }
164
165
  }
166
+ // Check #5: Writing untrusted data to config files without validation - NEW Jan 10, 2026
167
+ // Pattern: fs.writeFileSync(...config..., JSON.stringify(req.body)) without schema validation
168
+ // This addresses Issue #08 partial fix: path traversal fixed but config validation missing
169
+ const isConfigWrite = (lowerLine.includes('fs.write') || lowerLine.includes('fs.append')) &&
170
+ (lowerLine.includes('config') || lowerLine.includes('.json') || lowerLine.includes('.yaml') || lowerLine.includes('.yml'));
171
+ if (isConfigWrite && (lowerLine.includes('req.body') || lowerLine.includes('req.query') || lowerLine.includes('req.params'))) {
172
+ // Check for schema validation in surrounding lines
173
+ const contextLines = lines.slice(Math.max(0, index - 10), Math.min(index + 5, lines.length));
174
+ const hasValidation = contextLines.some(l => {
175
+ const lowerContext = l.toLowerCase();
176
+ return lowerContext.includes('validate') ||
177
+ lowerContext.includes('schema') ||
178
+ lowerContext.includes('joi.') ||
179
+ lowerContext.includes('yup.') ||
180
+ lowerContext.includes('zod.') ||
181
+ lowerContext.includes('ajv') ||
182
+ lowerContext.includes('json-schema');
183
+ });
184
+ if (!hasValidation) {
185
+ vulnerabilities.push((0, createVulnerability_1.createJavaScriptSecurityVulnerability)('unvalidated-config-write', 'Writing untrusted data to config files without schema validation - enables config poisoning', 'Validate config structure using schema validation (Joi, Zod, AJV) before writing', index + 1, 'Writing user-provided data directly to configuration files without schema validation allows attackers to inject malicious configuration, modify application behavior, or execute code through config-driven features.', 'fs.writeFileSync("config.json", JSON.stringify(req.body)) → Attacker sends {"adminMode": true, "debugLevel": 999} → Application compromised', [
186
+ 'Configuration poisoning and tampering',
187
+ 'Application behavior modification',
188
+ 'Privilege escalation via config injection',
189
+ 'Code execution if config is later evaluated',
190
+ 'Denial of Service via malformed config',
191
+ 'Security setting bypass (disabling auth, logging)'
192
+ ], 'fs.writeFileSync(safePath, JSON.stringify(req.body)); // No validation', '// Define allowed config schema\nconst Joi = require("joi");\nconst schema = Joi.object({\n theme: Joi.string().valid("light", "dark"),\n timeout: Joi.number().min(1000).max(30000)\n}).unknown(false); // Reject extra fields\n\nconst { error, value } = schema.validate(req.body);\nif (error) return res.status(400).send("Invalid config");\n\nfs.writeFileSync(safePath, JSON.stringify(value));', 'Always validate configuration data against a strict schema before persisting. Reject unknown fields and enforce type/range constraints.'));
193
+ }
194
+ }
165
195
  });
166
196
  return vulnerabilities;
167
197
  }
@@ -1 +1 @@
1
- {"version":3,"file":"software-integrity.js","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/javascript/security-checks/software-integrity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"software-integrity.js","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/javascript/security-checks/software-integrity.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { SecurityVulnerability } from '../../types';
11
11
  *
12
12
  * Covers:
13
13
  * - Check #85: IDOR in Express/Koa routes with :id parameters (HIGH)
14
+ * - Check #85b: IDOR via indirect variable usage (HIGH) - NEW Jan 10, 2026
14
15
  *
15
16
  * @param lines - Array of code lines
16
17
  * @returns Array of security vulnerabilities found
@@ -1 +1 @@
1
- {"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/typescript/security-checks/access-control.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EAAE,GACd,qBAAqB,EAAE,CAqQzB"}
1
+ {"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/typescript/security-checks/access-control.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EAAE,GACd,qBAAqB,EAAE,CAuUzB"}
@@ -14,6 +14,7 @@ const createVulnerability_1 = require("../utils/createVulnerability");
14
14
  *
15
15
  * Covers:
16
16
  * - Check #85: IDOR in Express/Koa routes with :id parameters (HIGH)
17
+ * - Check #85b: IDOR via indirect variable usage (HIGH) - NEW Jan 10, 2026
17
18
  *
18
19
  * @param lines - Array of code lines
19
20
  * @returns Array of security vulnerabilities found
@@ -21,6 +22,8 @@ const createVulnerability_1 = require("../utils/createVulnerability");
21
22
  function checkAccessControl(lines) {
22
23
  const vulnerabilities = [];
23
24
  let inMultiLineComment = false;
25
+ // Track variables assigned from req.params/req.query/req.body for IDOR detection
26
+ const userInputVariables = new Map();
24
27
  lines.forEach((line, index) => {
25
28
  const lineNumber = index + 1;
26
29
  const trimmed = line.trim();
@@ -35,6 +38,14 @@ function checkAccessControl(lines) {
35
38
  // Skip comments and empty lines
36
39
  if (!trimmed || inMultiLineComment || trimmed.startsWith('//') || trimmed.startsWith('*'))
37
40
  return;
41
+ // Track variable assignments from user input (for indirect IDOR detection)
42
+ // Pattern: const userId = req.params.id, const id = req.query.userId, let userInput = req.body.data
43
+ const userInputAssignment = trimmed.match(/(?:const|let|var)\s+(\w+)\s*(?::\s*[\w<>]+)?\s*=\s*(req\.(?:params|query|body)\.[\w.]+)/i);
44
+ if (userInputAssignment) {
45
+ const varName = userInputAssignment[1];
46
+ const source = userInputAssignment[2];
47
+ userInputVariables.set(varName, { source, lineNumber });
48
+ }
38
49
  // OWASP A01:2021 - Broken Access Control
39
50
  // Check #85: IDOR in route handlers - HIGH
40
51
  // Pattern: app.get("/users/:id", ...) or app.post("/accounts/:accountId", ...)
@@ -77,6 +88,42 @@ function checkAccessControl(lines) {
77
88
  ], 'app.get("/users/:id", async (req, res) => {\n const user = await db.query("SELECT * FROM users WHERE id = ?", [req.params.id]);\n res.json(user); // No auth check\n});', 'app.get("/users/:id", async (req, res) => {\n if (req.session.userId !== req.params.id) {\n return res.status(403).json({ error: "Forbidden" });\n }\n const user = await db.query("SELECT * FROM users WHERE id = ?", [req.params.id]);\n res.json(user);\n});', 'Add ownership validation by comparing the authenticated user\'s ID (from session/JWT) with the requested resource ID. Return 403 Forbidden if they don\'t match.'));
78
89
  }
79
90
  }
91
+ // Check #85b: IDOR via indirect variable usage - NEW Jan 10, 2026
92
+ // Pattern: const userId = req.params.userId; getUserById(userId) without ownership check
93
+ const idorPattern = /(getUserById|findById|findOne|getById|deleteById|updateById|get\w+ById|fetch\w+|load\w+)\s*\(\s*([\w.]+)\s*[),]/i;
94
+ const dbAccessPattern = /\.(find|findOne|update|delete|remove)\s*\(\s*\{\s*(_?id|userId|user_id|accountId)\s*:\s*([\w]+)\s*[},]/i;
95
+ const isIdorMatch = trimmed.match(idorPattern) || trimmed.match(dbAccessPattern);
96
+ // Check if using tracked user input variable
97
+ let usesTrackedVariable = false;
98
+ for (const [varName] of userInputVariables) {
99
+ if (isIdorMatch && trimmed.includes(varName)) {
100
+ usesTrackedVariable = true;
101
+ break;
102
+ }
103
+ }
104
+ if (isIdorMatch && (trimmed.match(/req\.(params|query|body)/i) || usesTrackedVariable)) {
105
+ // Check if there's ownership validation in next 10 lines
106
+ const nextLines = lines.slice(index, Math.min(index + 10, lines.length));
107
+ const hasOwnershipCheck = nextLines.some(l => {
108
+ const lowerLine = l.toLowerCase();
109
+ return ((lowerLine.includes('if') && lowerLine.includes('user') && lowerLine.includes('!==')) ||
110
+ (lowerLine.includes('if') && lowerLine.includes('owner') && lowerLine.includes('!==')) ||
111
+ lowerLine.includes('checkOwnership') ||
112
+ lowerLine.includes('verifyOwner') ||
113
+ lowerLine.includes('isOwner') ||
114
+ (lowerLine.includes('403') || lowerLine.includes('forbidden')) ||
115
+ (lowerLine.includes('401') || lowerLine.includes('unauthorized')));
116
+ });
117
+ if (!hasOwnershipCheck) {
118
+ vulnerabilities.push((0, createVulnerability_1.createTypeScriptSecurityVulnerability)('idor-indirect-variable', 'IDOR: Database access using user-controlled variable without ownership validation', 'Validate ownership: if (resource.userId !== req.user.id) return res.status(403)', lineNumber, 'Using user-provided IDs (from req.params/query/body) to access database records without verifying ownership allows attackers to access, modify, or delete other users\' data.', 'const userId = req.params.userId;\nconst user = getUserById(userId); // No ownership check → IDOR', [
119
+ 'Unauthorized access to other users\' data',
120
+ 'Horizontal privilege escalation',
121
+ 'Data modification or deletion across accounts',
122
+ 'Privacy violations (GDPR, CCPA)',
123
+ 'Account takeover via accessing sensitive info'
124
+ ], 'const userId = req.params.userId;\nconst user = await getUserById(userId);\nres.json(user); // No ownership check', 'const userId = req.params.userId;\nconst user = await getUserById(userId);\nif (user.id !== req.user.id) {\n return res.status(403).json({ error: "Forbidden" });\n}\nres.json(user);', 'Always validate that the authenticated user owns or has permission to access the requested resource before returning it'));
125
+ }
126
+ }
80
127
  // OWASP A01:2021 - Broken Access Control / A10:2025 - Mishandling Exceptional Conditions
81
128
  // Check #91: Fail-Open Authentication - CRITICAL
82
129
  // Pattern: if (authorized) res.send(X); else res.send(X);
@@ -1 +1 @@
1
- {"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/typescript/security-checks/access-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../../../../../../../src/lib/analyzers/typescript/security-checks/access-control.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeslick-cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "CodeSlick CLI tool for pre-commit security scanning",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -37,8 +37,8 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "yargs": "^17.7.2",
40
- "chalk": "^5.3.0",
41
- "ora": "^8.0.1",
40
+ "chalk": "^4.1.2",
41
+ "ora": "^5.4.1",
42
42
  "cli-table3": "^0.6.3",
43
43
  "glob": "^10.3.10"
44
44
  },