@indicated/vibeguard 1.5.2 → 1.7.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.
- package/.claude/hooks/agentspace-notify.sh +103 -0
- package/.claude/settings.local.json +40 -1
- package/README.md +51 -3
- package/SECURITY_GAPS.md +160 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +238 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/scanner/parsers/python.d.ts.map +1 -1
- package/dist/scanner/parsers/python.js +110 -0
- package/dist/scanner/parsers/python.js.map +1 -1
- package/dist/scanner/rules/definitions.d.ts.map +1 -1
- package/dist/scanner/rules/definitions.js +463 -0
- package/dist/scanner/rules/definitions.js.map +1 -1
- package/package.json +16 -3
- package/src/mcp/server.ts +250 -0
- package/src/scanner/parsers/python.ts +117 -0
- package/src/scanner/rules/definitions.ts +482 -0
|
@@ -353,6 +353,172 @@ exports.securityRules = [
|
|
|
353
353
|
],
|
|
354
354
|
fix: 'Always specify allowed algorithms explicitly and never include "none"',
|
|
355
355
|
},
|
|
356
|
+
// CRITICAL (Free tier) - New rules
|
|
357
|
+
{
|
|
358
|
+
id: 'insecure-randomness',
|
|
359
|
+
name: 'Insecure Randomness for Security',
|
|
360
|
+
description: 'Using Math.random() or random module for security-sensitive operations (tokens, IDs, passwords) is predictable',
|
|
361
|
+
severity: 'critical',
|
|
362
|
+
tier: 'free',
|
|
363
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
364
|
+
patterns: [
|
|
365
|
+
// JS: Math.random() used for token/key/secret/session/id generation
|
|
366
|
+
/(?:token|key|secret|session|nonce|salt|otp|password|uuid|id)\s*(?:=|:)\s*(?:.*)?Math\.random\s*\(/i,
|
|
367
|
+
/Math\.random\s*\(\s*\)\.toString\s*\(\s*(?:16|36)\s*\)/,
|
|
368
|
+
// Python: random module for security
|
|
369
|
+
/(?:token|key|secret|session|nonce|salt|otp|password)\s*=\s*.*random\.(?:random|randint|choice|randrange|getrandbits)\s*\(/i,
|
|
370
|
+
],
|
|
371
|
+
fix: 'Use crypto.randomBytes()/crypto.randomUUID() in Node.js or secrets module in Python',
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
id: 'weak-cryptography',
|
|
375
|
+
name: 'Weak Cryptographic Algorithm',
|
|
376
|
+
description: 'MD5 and SHA1 are cryptographically broken and should not be used for security purposes',
|
|
377
|
+
severity: 'critical',
|
|
378
|
+
tier: 'free',
|
|
379
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
380
|
+
patterns: [
|
|
381
|
+
// JS: crypto.createHash with weak algo
|
|
382
|
+
/crypto\.createHash\s*\(\s*['"`](?:md5|sha1|md4|ripemd160)['"`]\s*\)/i,
|
|
383
|
+
// Python: hashlib with weak algo
|
|
384
|
+
/hashlib\.(?:md5|sha1|new\s*\(\s*['"`](?:md5|sha1)['"`])\s*\(/,
|
|
385
|
+
// Direct MD5/SHA1 imports in Python
|
|
386
|
+
/from\s+hashlib\s+import\s+(?:md5|sha1)/,
|
|
387
|
+
],
|
|
388
|
+
fix: 'Use SHA-256+ for hashing, bcrypt/scrypt/argon2 for passwords. Replace MD5/SHA1 with stronger alternatives',
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
id: 'nosql-injection',
|
|
392
|
+
name: 'NoSQL Injection Vulnerability',
|
|
393
|
+
description: 'User input passed directly to NoSQL queries can allow query manipulation via operators like $gt, $ne',
|
|
394
|
+
severity: 'critical',
|
|
395
|
+
tier: 'free',
|
|
396
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
397
|
+
patterns: [
|
|
398
|
+
// MongoDB find/update with req.body directly
|
|
399
|
+
/\.(?:find|findOne|findOneAndUpdate|updateOne|updateMany|deleteOne|deleteMany)\s*\(\s*(?:req\.body|req\.query|req\.params)/,
|
|
400
|
+
// MongoDB where clause with user input
|
|
401
|
+
/\$where\s*:\s*(?:req\.|params\.|query\.|body\.)/,
|
|
402
|
+
// Direct user input in MongoDB query object
|
|
403
|
+
/\.(?:find|findOne)\s*\(\s*\{[^}]*:\s*(?:req\.body|req\.query|req\.params)\s*\./,
|
|
404
|
+
],
|
|
405
|
+
fix: 'Sanitize user input with mongo-sanitize, validate types explicitly, never pass req.body directly to queries',
|
|
406
|
+
},
|
|
407
|
+
// HIGH (Free tier) - New rules
|
|
408
|
+
{
|
|
409
|
+
id: 'disabled-tls-verification',
|
|
410
|
+
name: 'TLS Certificate Verification Disabled',
|
|
411
|
+
description: 'Disabling SSL/TLS certificate verification makes connections vulnerable to man-in-the-middle attacks',
|
|
412
|
+
severity: 'high',
|
|
413
|
+
tier: 'free',
|
|
414
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
415
|
+
patterns: [
|
|
416
|
+
// Node.js
|
|
417
|
+
/NODE_TLS_REJECT_UNAUTHORIZED\s*=\s*['"`]0['"`]/,
|
|
418
|
+
/rejectUnauthorized\s*:\s*false/,
|
|
419
|
+
// Python requests
|
|
420
|
+
/requests\.(?:get|post|put|delete|patch|head)\s*\([^)]*verify\s*=\s*False/,
|
|
421
|
+
// Python urllib3
|
|
422
|
+
/urllib3\.disable_warnings/,
|
|
423
|
+
/ssl\._create_unverified_context/,
|
|
424
|
+
// Generic SSL verification disable
|
|
425
|
+
/VERIFY_SSL\s*[=:]\s*(?:false|False|0)/i,
|
|
426
|
+
],
|
|
427
|
+
fix: 'Never disable TLS certificate verification in production. Use proper certificates instead',
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
id: 'unsafe-regex-construction',
|
|
431
|
+
name: 'Unsafe Regex from User Input',
|
|
432
|
+
description: 'Constructing RegExp from user input can cause ReDoS (Regular Expression Denial of Service)',
|
|
433
|
+
severity: 'high',
|
|
434
|
+
tier: 'free',
|
|
435
|
+
languages: ['javascript', 'typescript'],
|
|
436
|
+
patterns: [
|
|
437
|
+
/new\s+RegExp\s*\(\s*(?:req\.(?:body|query|params)|params\.|query\.|body\.)/,
|
|
438
|
+
/new\s+RegExp\s*\(\s*(?:searchTerm|userInput|input|pattern|filter|search|term|keyword)/i,
|
|
439
|
+
],
|
|
440
|
+
fix: 'Escape user input before using in RegExp, or use a fixed set of allowed patterns',
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
id: 'postmessage-no-origin',
|
|
444
|
+
name: 'postMessage Without Origin Validation',
|
|
445
|
+
description: 'Listening to postMessage events without checking origin accepts messages from any domain',
|
|
446
|
+
severity: 'high',
|
|
447
|
+
tier: 'free',
|
|
448
|
+
languages: ['javascript', 'typescript'],
|
|
449
|
+
patterns: [
|
|
450
|
+
// addEventListener for message without origin check nearby
|
|
451
|
+
/addEventListener\s*\(\s*['"`]message['"`]\s*,\s*(?:function|\([^)]*\)\s*=>|\w+\s*=>)\s*\{(?![^}]{0,200}(?:origin|source))/,
|
|
452
|
+
/\.on\s*\(\s*['"`]message['"`]\s*,\s*(?:function|\([^)]*\)\s*=>)\s*\{(?![^}]{0,200}(?:origin|source))/,
|
|
453
|
+
],
|
|
454
|
+
fix: 'Always validate event.origin against a whitelist of trusted domains',
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
id: 'hardcoded-db-credentials',
|
|
458
|
+
name: 'Hardcoded Database Connection String',
|
|
459
|
+
description: 'Database connection strings with embedded credentials can be extracted from source code',
|
|
460
|
+
severity: 'high',
|
|
461
|
+
tier: 'free',
|
|
462
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
463
|
+
patterns: [
|
|
464
|
+
// MongoDB connection string with credentials
|
|
465
|
+
/['"`]mongodb(?:\+srv)?:\/\/[^:]+:[^@]+@[^'"`]+['"`]/,
|
|
466
|
+
// PostgreSQL connection string with credentials
|
|
467
|
+
/['"`]postgres(?:ql)?:\/\/[^:]+:[^@]+@[^'"`]+['"`]/,
|
|
468
|
+
// MySQL connection string with credentials
|
|
469
|
+
/['"`]mysql:\/\/[^:]+:[^@]+@[^'"`]+['"`]/,
|
|
470
|
+
// Redis with password
|
|
471
|
+
/['"`]redis:\/\/[^:]*:[^@]+@[^'"`]+['"`]/,
|
|
472
|
+
],
|
|
473
|
+
fix: 'Use environment variables for database connection strings. Never embed credentials in code',
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
id: 'ssti-vulnerability',
|
|
477
|
+
name: 'Server-Side Template Injection (SSTI)',
|
|
478
|
+
description: 'Rendering user-supplied template strings can lead to remote code execution',
|
|
479
|
+
severity: 'high',
|
|
480
|
+
tier: 'free',
|
|
481
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
482
|
+
patterns: [
|
|
483
|
+
// Python: render_template_string with user input
|
|
484
|
+
/render_template_string\s*\(\s*(?:request\.|req\.|data\[)/,
|
|
485
|
+
// Python: Jinja2 Template from user input
|
|
486
|
+
/Template\s*\(\s*(?:request\.|req\.|data\[|user_input)/,
|
|
487
|
+
// JS: ejs/pug render with user-controlled template
|
|
488
|
+
/(?:ejs|pug)\.render\s*\(\s*(?:req\.(?:body|query|params)|body\.|params\.)/,
|
|
489
|
+
// Generic template rendering with user input
|
|
490
|
+
/\.render(?:String)?\s*\(\s*(?:req\.body|req\.query|req\.params)\./,
|
|
491
|
+
],
|
|
492
|
+
fix: 'Never render user-supplied template strings. Use pre-defined templates with variable substitution only',
|
|
493
|
+
},
|
|
494
|
+
// MEDIUM (Free tier) - New rules
|
|
495
|
+
{
|
|
496
|
+
id: 'insecure-websocket',
|
|
497
|
+
name: 'Insecure WebSocket Connection (ws://)',
|
|
498
|
+
description: 'Unencrypted WebSocket connections can be intercepted, similar to HTTP vs HTTPS',
|
|
499
|
+
severity: 'medium',
|
|
500
|
+
tier: 'free',
|
|
501
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
502
|
+
patterns: [
|
|
503
|
+
/['"`]ws:\/\/(?!localhost|127\.0\.0\.1|0\.0\.0\.0)[^'"`]+['"`]/,
|
|
504
|
+
/WebSocket\s*\(\s*['"`]ws:\/\/(?!localhost|127\.0\.0\.1|0\.0\.0\.0)/,
|
|
505
|
+
],
|
|
506
|
+
fix: 'Use wss:// for encrypted WebSocket connections',
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
id: 'timing-attack',
|
|
510
|
+
name: 'Timing Attack on Secret Comparison',
|
|
511
|
+
description: 'Using === to compare secrets allows timing attacks that can leak token values byte by byte',
|
|
512
|
+
severity: 'medium',
|
|
513
|
+
tier: 'free',
|
|
514
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
515
|
+
patterns: [
|
|
516
|
+
// JS: direct comparison of tokens/secrets
|
|
517
|
+
/(?:token|secret|apiKey|api_key|password|hash|signature|hmac|digest)\s*(?:===|!==)\s*(?:req\.|body\.|params\.|query\.|expected|stored|saved)/i,
|
|
518
|
+
/(?:req\.|body\.|params\.|query\.)\w*(?:token|secret|key|password|hash|signature)\s*(?:===|!==)/i,
|
|
519
|
+
],
|
|
520
|
+
fix: 'Use crypto.timingSafeEqual() in Node.js or hmac.compare_digest() in Python for constant-time comparison',
|
|
521
|
+
},
|
|
356
522
|
// LOW (Free tier)
|
|
357
523
|
{
|
|
358
524
|
id: 'verbose-errors',
|
|
@@ -683,6 +849,303 @@ exports.securityRules = [
|
|
|
683
849
|
],
|
|
684
850
|
fix: 'Configure session with secure options: { cookie: { secure: true, httpOnly: true, sameSite: "strict" } }',
|
|
685
851
|
},
|
|
852
|
+
// --- Flask ---
|
|
853
|
+
{
|
|
854
|
+
id: 'flask-secret-key-exposed',
|
|
855
|
+
name: 'Flask SECRET_KEY Hardcoded',
|
|
856
|
+
description: 'Hardcoded Flask SECRET_KEY can be used to forge session cookies and CSRF tokens',
|
|
857
|
+
severity: 'critical',
|
|
858
|
+
tier: 'pro',
|
|
859
|
+
languages: ['python'],
|
|
860
|
+
patterns: [
|
|
861
|
+
/app\.secret_key\s*=\s*['"`][^'"`]{8,}['"`]/,
|
|
862
|
+
/SECRET_KEY\s*=\s*['"`][^'"`]{8,}['"`](?!.*(?:os\.environ|os\.getenv|env\())/,
|
|
863
|
+
],
|
|
864
|
+
fix: 'Load SECRET_KEY from environment variable: app.secret_key = os.environ.get("SECRET_KEY")',
|
|
865
|
+
},
|
|
866
|
+
// --- Prisma ---
|
|
867
|
+
{
|
|
868
|
+
id: 'prisma-raw-query',
|
|
869
|
+
name: 'Prisma Raw Query with User Input',
|
|
870
|
+
description: 'Raw SQL in Prisma with template literals can lead to SQL injection',
|
|
871
|
+
severity: 'high',
|
|
872
|
+
tier: 'pro',
|
|
873
|
+
languages: ['javascript', 'typescript'],
|
|
874
|
+
patterns: [
|
|
875
|
+
/\$queryRaw\s*`[^`]*\$\{/,
|
|
876
|
+
/\$executeRaw\s*`[^`]*\$\{/,
|
|
877
|
+
/\$queryRawUnsafe\s*\(/,
|
|
878
|
+
/\$executeRawUnsafe\s*\(/,
|
|
879
|
+
],
|
|
880
|
+
fix: 'Use Prisma.$queryRaw with Prisma.sql tagged template or parameterized queries',
|
|
881
|
+
},
|
|
882
|
+
// --- Electron ---
|
|
883
|
+
{
|
|
884
|
+
id: 'electron-insecure-config',
|
|
885
|
+
name: 'Electron Insecure Configuration',
|
|
886
|
+
description: 'Insecure Electron settings can allow remote code execution via web content',
|
|
887
|
+
severity: 'high',
|
|
888
|
+
tier: 'pro',
|
|
889
|
+
languages: ['javascript', 'typescript'],
|
|
890
|
+
patterns: [
|
|
891
|
+
/nodeIntegration\s*:\s*true/,
|
|
892
|
+
/contextIsolation\s*:\s*false/,
|
|
893
|
+
/webSecurity\s*:\s*false/,
|
|
894
|
+
/allowRunningInsecureContent\s*:\s*true/,
|
|
895
|
+
],
|
|
896
|
+
fix: 'Keep nodeIntegration: false, contextIsolation: true, webSecurity: true in BrowserWindow options',
|
|
897
|
+
},
|
|
898
|
+
// --- GraphQL ---
|
|
899
|
+
{
|
|
900
|
+
id: 'graphql-introspection-enabled',
|
|
901
|
+
name: 'GraphQL Introspection Enabled',
|
|
902
|
+
description: 'GraphQL introspection exposes your entire API schema, aiding attackers in discovering endpoints',
|
|
903
|
+
severity: 'medium',
|
|
904
|
+
tier: 'pro',
|
|
905
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
906
|
+
patterns: [
|
|
907
|
+
/introspection\s*:\s*true/,
|
|
908
|
+
// Apollo server without explicitly disabling introspection in production
|
|
909
|
+
/new\s+ApolloServer\s*\(\s*\{(?![^}]*introspection\s*:\s*false)/,
|
|
910
|
+
],
|
|
911
|
+
fix: 'Disable introspection in production: introspection: process.env.NODE_ENV !== "production"',
|
|
912
|
+
},
|
|
913
|
+
// --- Python-specific ---
|
|
914
|
+
{
|
|
915
|
+
id: 'python-assert-security',
|
|
916
|
+
name: 'Python Assert for Security Check',
|
|
917
|
+
description: 'Assert statements are stripped with -O flag, making security checks ineffective in optimized mode',
|
|
918
|
+
severity: 'medium',
|
|
919
|
+
tier: 'pro',
|
|
920
|
+
languages: ['python'],
|
|
921
|
+
patterns: [
|
|
922
|
+
/assert\s+(?:request\.user|current_user|user)\.(?:is_admin|is_authenticated|is_staff|is_superuser|has_perm)/,
|
|
923
|
+
/assert\s+(?:is_authenticated|is_authorized|has_permission|check_permission)\s*\(/,
|
|
924
|
+
],
|
|
925
|
+
fix: 'Use if/raise instead of assert for security checks: if not user.is_admin: raise PermissionError()',
|
|
926
|
+
},
|
|
927
|
+
{
|
|
928
|
+
id: 'unsafe-tempfile',
|
|
929
|
+
name: 'Unsafe Temporary File Creation',
|
|
930
|
+
description: 'tempfile.mktemp() is vulnerable to race conditions (TOCTOU). An attacker can create a file at the path between creation and use',
|
|
931
|
+
severity: 'medium',
|
|
932
|
+
tier: 'pro',
|
|
933
|
+
languages: ['python'],
|
|
934
|
+
patterns: [
|
|
935
|
+
/tempfile\.mktemp\s*\(/,
|
|
936
|
+
],
|
|
937
|
+
fix: 'Use tempfile.mkstemp() or tempfile.NamedTemporaryFile() instead',
|
|
938
|
+
},
|
|
939
|
+
// --- Mass Assignment ---
|
|
940
|
+
{
|
|
941
|
+
id: 'mass-assignment',
|
|
942
|
+
name: 'Mass Assignment / Over-posting Vulnerability',
|
|
943
|
+
description: 'Passing user input directly to ORM create/update allows attackers to set unintended fields (e.g., isAdmin)',
|
|
944
|
+
severity: 'medium',
|
|
945
|
+
tier: 'pro',
|
|
946
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
947
|
+
patterns: [
|
|
948
|
+
// Sequelize/Mongoose/Prisma create with req.body
|
|
949
|
+
/\.create\s*\(\s*(?:req\.body|request\.data|request\.POST)\s*\)/,
|
|
950
|
+
/\.update\s*\(\s*(?:req\.body|request\.data|request\.POST)\s*\)/,
|
|
951
|
+
// Spread into create/update (also risky)
|
|
952
|
+
/\.create\s*\(\s*\{\s*\.\.\.(?:req\.body|request\.data)\s*\}/,
|
|
953
|
+
/\.update\s*\(\s*\{\s*\.\.\.(?:req\.body|request\.data)\s*\}/,
|
|
954
|
+
],
|
|
955
|
+
fix: 'Explicitly whitelist allowed fields instead of passing user input directly to ORM operations',
|
|
956
|
+
},
|
|
957
|
+
// --- File Upload ---
|
|
958
|
+
{
|
|
959
|
+
id: 'unvalidated-file-upload',
|
|
960
|
+
name: 'Unvalidated File Upload',
|
|
961
|
+
description: 'Accepting file uploads without type/size validation can lead to arbitrary file upload attacks',
|
|
962
|
+
severity: 'high',
|
|
963
|
+
tier: 'pro',
|
|
964
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
965
|
+
patterns: [
|
|
966
|
+
// Multer without file filter or limits
|
|
967
|
+
/multer\s*\(\s*\{\s*(?:dest|storage)\s*:[^}]*\}\s*\)(?![^;]*(?:fileFilter|limits))/,
|
|
968
|
+
// Express file upload without checks
|
|
969
|
+
/upload\.(?:single|array|fields)\s*\([^)]*\)\s*(?:,|\))\s*(?:async\s*)?\([^)]*\)\s*(?:=>|\{)(?![^}]{0,300}(?:mimetype|type|size|extension|ext))/,
|
|
970
|
+
],
|
|
971
|
+
fix: 'Validate file type (MIME type), size, and extension. Store uploads outside the webroot',
|
|
972
|
+
},
|
|
973
|
+
// --- Log Injection ---
|
|
974
|
+
{
|
|
975
|
+
id: 'log-injection',
|
|
976
|
+
name: 'Log Injection / CRLF Injection',
|
|
977
|
+
description: 'User input written directly to logs can forge log entries or inject malicious content',
|
|
978
|
+
severity: 'medium',
|
|
979
|
+
tier: 'pro',
|
|
980
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
981
|
+
patterns: [
|
|
982
|
+
// Logger with user input that could contain newlines
|
|
983
|
+
/(?:logger|log)\.(?:info|warn|error|debug)\s*\(\s*(?:`[^`]*\$\{(?:req\.|body\.|params\.|query\.)|['"][^'"]*['"\s]*\+\s*(?:req\.|body\.|params\.|query\.))/,
|
|
984
|
+
/(?:console|logging)\.(?:log|info|warn|error|debug)\s*\(\s*f?['"`][^'"`]*\{(?:request\.|req\.)/,
|
|
985
|
+
],
|
|
986
|
+
fix: 'Sanitize user input before logging: strip newlines, control characters, and limit length',
|
|
987
|
+
},
|
|
988
|
+
// ============================================
|
|
989
|
+
// NEW RULES - Security Gaps Backlog
|
|
990
|
+
// ============================================
|
|
991
|
+
// --- JWT Hardening ---
|
|
992
|
+
{
|
|
993
|
+
id: 'jwt-missing-exp',
|
|
994
|
+
name: 'JWT Token Without Expiration',
|
|
995
|
+
description: 'JWT tokens signed without an expiration claim can be used indefinitely if compromised',
|
|
996
|
+
severity: 'high',
|
|
997
|
+
tier: 'free',
|
|
998
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
999
|
+
patterns: [
|
|
1000
|
+
// JS: jwt.sign() without expiresIn option
|
|
1001
|
+
/jwt\.sign\s*\(\s*(?:\{[^}]*\}|\w+)\s*,\s*(?:[^,)]+)\s*\)(?!\s*;?\s*\/\/\s*has\s*exp)/,
|
|
1002
|
+
// JS: jwt.sign with options object but no expiresIn
|
|
1003
|
+
/jwt\.sign\s*\(\s*(?:\{[^}]*\}|\w+)\s*,\s*[^,)]+\s*,\s*\{(?![^}]*expiresIn)[^}]*\}\s*\)/,
|
|
1004
|
+
],
|
|
1005
|
+
fix: 'Always set an expiration: jwt.sign(payload, secret, { expiresIn: "1h" }) or include exp claim in payload',
|
|
1006
|
+
},
|
|
1007
|
+
{
|
|
1008
|
+
id: 'jwt-weak-secret',
|
|
1009
|
+
name: 'JWT Signed with Weak/Short Secret',
|
|
1010
|
+
description: 'JWT signing with a short hardcoded secret makes tokens easy to brute-force',
|
|
1011
|
+
severity: 'high',
|
|
1012
|
+
tier: 'free',
|
|
1013
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
1014
|
+
patterns: [
|
|
1015
|
+
// JS: jwt.sign with short string literal secret (< 16 chars)
|
|
1016
|
+
/jwt\.sign\s*\([^,]+,\s*['"`][^'"`]{1,15}['"`]/,
|
|
1017
|
+
// JS: jwt.verify with short string literal secret
|
|
1018
|
+
/jwt\.verify\s*\([^,]+,\s*['"`][^'"`]{1,15}['"`]/,
|
|
1019
|
+
],
|
|
1020
|
+
fix: 'Use a strong secret (32+ characters) from environment variables: jwt.sign(payload, process.env.JWT_SECRET)',
|
|
1021
|
+
},
|
|
1022
|
+
// --- Security Headers ---
|
|
1023
|
+
{
|
|
1024
|
+
id: 'missing-security-headers',
|
|
1025
|
+
name: 'Express App Without Security Headers',
|
|
1026
|
+
description: 'Express apps without security headers (CSP, HSTS, X-Frame-Options) are vulnerable to various attacks',
|
|
1027
|
+
severity: 'medium',
|
|
1028
|
+
tier: 'free',
|
|
1029
|
+
languages: ['javascript', 'typescript'],
|
|
1030
|
+
patterns: [
|
|
1031
|
+
// Express app created without helmet or manual header setup in same file
|
|
1032
|
+
/const\s+\w+\s*=\s*express\s*\(\s*\)(?![^]*(?:helmet|Content-Security-Policy|X-Frame-Options|Strict-Transport-Security))/,
|
|
1033
|
+
],
|
|
1034
|
+
fix: 'Use helmet middleware: app.use(helmet()) or set security headers manually (CSP, HSTS, X-Frame-Options)',
|
|
1035
|
+
},
|
|
1036
|
+
{
|
|
1037
|
+
id: 'csp-unsafe-inline',
|
|
1038
|
+
name: 'CSP Allows unsafe-inline or unsafe-eval',
|
|
1039
|
+
description: 'Content Security Policy with unsafe-inline or unsafe-eval defeats the purpose of CSP and allows XSS',
|
|
1040
|
+
severity: 'medium',
|
|
1041
|
+
tier: 'pro',
|
|
1042
|
+
languages: ['javascript', 'typescript'],
|
|
1043
|
+
patterns: [
|
|
1044
|
+
/Content-Security-Policy[^'"]*['"`][^'"`]*unsafe-inline[^'"`]*['"`]/,
|
|
1045
|
+
/Content-Security-Policy[^'"]*['"`][^'"`]*unsafe-eval[^'"`]*['"`]/,
|
|
1046
|
+
/contentSecurityPolicy[^}]*['"`][^'"`]*unsafe-inline[^'"`]*['"`]/,
|
|
1047
|
+
/contentSecurityPolicy[^}]*['"`][^'"`]*unsafe-eval[^'"`]*['"`]/,
|
|
1048
|
+
],
|
|
1049
|
+
fix: 'Remove unsafe-inline/unsafe-eval from CSP. Use nonces or hashes for inline scripts instead',
|
|
1050
|
+
},
|
|
1051
|
+
// --- CORS with Credentials ---
|
|
1052
|
+
{
|
|
1053
|
+
id: 'cors-credentials-wildcard',
|
|
1054
|
+
name: 'CORS Wildcard Origin with Credentials',
|
|
1055
|
+
description: 'Allowing all origins with credentials enabled lets any site make authenticated requests on behalf of users',
|
|
1056
|
+
severity: 'high',
|
|
1057
|
+
tier: 'free',
|
|
1058
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
1059
|
+
patterns: [
|
|
1060
|
+
// Express: cors({ origin: '*', credentials: true }) or cors({ origin: true, credentials: true })
|
|
1061
|
+
/cors\s*\(\s*\{[^}]*origin\s*:\s*(?:['"`]\*['"`]|true)[^}]*credentials\s*:\s*true[^}]*\}/,
|
|
1062
|
+
/cors\s*\(\s*\{[^}]*credentials\s*:\s*true[^}]*origin\s*:\s*(?:['"`]\*['"`]|true)[^}]*\}/,
|
|
1063
|
+
],
|
|
1064
|
+
fix: 'Specify allowed origins explicitly instead of using wildcard when credentials are enabled',
|
|
1065
|
+
},
|
|
1066
|
+
// --- Password Hashing ---
|
|
1067
|
+
{
|
|
1068
|
+
id: 'password-hash-weak',
|
|
1069
|
+
name: 'Weak Password Hashing Algorithm',
|
|
1070
|
+
description: 'Using MD5, SHA1, or raw SHA256 without salt/KDF for passwords allows fast brute-force attacks',
|
|
1071
|
+
severity: 'high',
|
|
1072
|
+
tier: 'free',
|
|
1073
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
1074
|
+
patterns: [
|
|
1075
|
+
// JS: crypto.createHash with password variable
|
|
1076
|
+
/crypto\.createHash\s*\(\s*['"`](?:md5|sha1|sha256)['"`]\s*\)\.update\s*\(\s*(?:password|passwd|pass|pwd)/i,
|
|
1077
|
+
// Generic: hash(password) without bcrypt/scrypt/argon2
|
|
1078
|
+
/(?:md5|sha1|sha256)\s*\(\s*(?:password|passwd|pass|pwd)\s*\)/i,
|
|
1079
|
+
],
|
|
1080
|
+
fix: 'Use bcrypt, scrypt, or argon2 for password hashing: await bcrypt.hash(password, 12)',
|
|
1081
|
+
},
|
|
1082
|
+
{
|
|
1083
|
+
id: 'password-plaintext-storage',
|
|
1084
|
+
name: 'Password Stored Without Hashing',
|
|
1085
|
+
description: 'Storing passwords directly in the database without hashing exposes all users if the database is compromised',
|
|
1086
|
+
severity: 'critical',
|
|
1087
|
+
tier: 'free',
|
|
1088
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
1089
|
+
patterns: [
|
|
1090
|
+
// ORM create/insert with password from request body directly
|
|
1091
|
+
/\.create\s*\(\s*\{[^}]*password\s*:\s*(?:req\.body\.password|request\.(?:data|POST)\[?['"`]?password)/,
|
|
1092
|
+
/\.insert\s*\(\s*\{[^}]*password\s*:\s*(?:req\.body\.password|request\.(?:data|POST)\[?['"`]?password)/,
|
|
1093
|
+
// Direct DB insert with password field from user input
|
|
1094
|
+
/\.(?:insertOne|save)\s*\(\s*\{[^}]*password\s*:\s*(?:req\.body|data|body)\.password/,
|
|
1095
|
+
],
|
|
1096
|
+
fix: 'Always hash passwords before storage: const hashed = await bcrypt.hash(req.body.password, 12)',
|
|
1097
|
+
},
|
|
1098
|
+
// --- Zip Slip ---
|
|
1099
|
+
{
|
|
1100
|
+
id: 'zip-slip',
|
|
1101
|
+
name: 'Archive Extraction Without Path Validation (Zip Slip)',
|
|
1102
|
+
description: 'Extracting archives without validating file paths allows attackers to write files outside the target directory',
|
|
1103
|
+
severity: 'high',
|
|
1104
|
+
tier: 'pro',
|
|
1105
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
1106
|
+
patterns: [
|
|
1107
|
+
// JS: extract/unzip without path validation
|
|
1108
|
+
/\.extract\s*\(\s*(?:req\.|body\.|params\.|query\.|upload|file|input)/,
|
|
1109
|
+
/tar\.(?:x|extract)\s*\(\s*\{[^}]*(?:file|cwd)\s*:[^}]*(?:req\.|body\.|params\.|upload|input)/,
|
|
1110
|
+
/unzipper\.Extract\s*\(/,
|
|
1111
|
+
/adm-zip.*extractAllTo\s*\(/,
|
|
1112
|
+
],
|
|
1113
|
+
fix: 'Validate extracted file paths: ensure path.resolve(dest, entry) starts with path.resolve(dest)',
|
|
1114
|
+
},
|
|
1115
|
+
// --- HTTP Client Timeout ---
|
|
1116
|
+
{
|
|
1117
|
+
id: 'http-client-no-timeout',
|
|
1118
|
+
name: 'HTTP Client Without Timeout',
|
|
1119
|
+
description: 'Outbound HTTP requests without a timeout can hang indefinitely, causing resource exhaustion',
|
|
1120
|
+
severity: 'medium',
|
|
1121
|
+
tier: 'free',
|
|
1122
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
1123
|
+
patterns: [
|
|
1124
|
+
// Python: requests without timeout
|
|
1125
|
+
/requests\.(?:get|post|put|delete|patch|head)\s*\([^)]*\)(?<![^)]*timeout)/,
|
|
1126
|
+
],
|
|
1127
|
+
fix: 'Always set a timeout: requests.get(url, timeout=10) or use AbortController with fetch',
|
|
1128
|
+
},
|
|
1129
|
+
// --- S3 Public Access ---
|
|
1130
|
+
{
|
|
1131
|
+
id: 's3-public-read',
|
|
1132
|
+
name: 'S3 Bucket with Public Access',
|
|
1133
|
+
description: 'S3 bucket policies granting public access can expose sensitive data to the internet',
|
|
1134
|
+
severity: 'high',
|
|
1135
|
+
tier: 'pro',
|
|
1136
|
+
languages: ['javascript', 'typescript', 'python'],
|
|
1137
|
+
patterns: [
|
|
1138
|
+
// S3 ACL set to public-read
|
|
1139
|
+
/ACL\s*:\s*['"`]public-read(?:-write)?['"`]/,
|
|
1140
|
+
/acl\s*=\s*['"`]public-read(?:-write)?['"`]/,
|
|
1141
|
+
// S3 policy with Principal: *
|
|
1142
|
+
/Principal['"`:]\s*['"`]\*['"`][\s\S]{0,200}s3:(?:GetObject|\*)/,
|
|
1143
|
+
// Public bucket configuration
|
|
1144
|
+
/BlockPublicAcls\s*:\s*false/,
|
|
1145
|
+
/BlockPublicPolicy\s*:\s*false/,
|
|
1146
|
+
],
|
|
1147
|
+
fix: 'Remove public access. Use BlockPublicAccess, restrict bucket policies to specific IAM roles/accounts',
|
|
1148
|
+
},
|
|
686
1149
|
];
|
|
687
1150
|
function getRuleById(id) {
|
|
688
1151
|
return exports.securityRules.find(rule => rule.id === id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/scanner/rules/definitions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/scanner/rules/definitions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@indicated/vibeguard",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "Local CLI security scanner for AI-generated code",
|
|
5
5
|
"main": "dist/cli/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -19,10 +19,23 @@
|
|
|
19
19
|
"scanner",
|
|
20
20
|
"cli",
|
|
21
21
|
"vulnerability",
|
|
22
|
-
"code-analysis"
|
|
22
|
+
"code-analysis",
|
|
23
|
+
"ai",
|
|
24
|
+
"mcp",
|
|
25
|
+
"claude",
|
|
26
|
+
"vibe-coding",
|
|
27
|
+
"static-analysis"
|
|
23
28
|
],
|
|
24
|
-
"author": "",
|
|
29
|
+
"author": "Indicated <pupkin.alan@gmail.com>",
|
|
25
30
|
"license": "ISC",
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "git+https://github.com/indicated/vibeguard.git"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://github.com/indicated/vibeguard#readme",
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/indicated/vibeguard/issues"
|
|
38
|
+
},
|
|
26
39
|
"type": "commonjs",
|
|
27
40
|
"engines": {
|
|
28
41
|
"node": ">=18.0.0"
|