You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A11Y007: {id: 'A11Y007',category: 'accessibility',severity: 'low',message: 'next/image used without width and height',fix: 'Provide width and height props to <Image>',helpUri: 'https://nextjs.org/docs/pages/api-reference/components/image'},
24
24
25
25
// Security (JS/TS)
26
-
SEC001: {id: 'SEC001',category: 'security',severity: 'high',message: 'Potential API key or secret token exposed',fix: 'Move sensitive keys to environment variables',impact: 'Exposed credentials can be stolen from source code and used to access your services'},
26
+
SEC001: {id: 'SEC001',category: 'security',severity: 'high',message: 'Potential API key or secret token exposed',fix: 'Move sensitive keys to environment variables',impact: 'Exposed credentials can be stolen from source code and used to access your services',helpUri: 'https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html'},
27
27
SEC002: {id: 'SEC002',category: 'security',severity: 'medium',message: 'Supabase URL hardcoded (should use env var)',fix: 'Use NEXT_PUBLIC_SUPABASE_URL environment variable',impact: 'Hardcoded URLs make it difficult to manage different environments securely'},
SEC011: {id: 'SEC011',category: 'security',severity: 'high',message: 'GitHub token exposed',fix: 'Use environment variables for GitHub tokens',impact: 'GitHub tokens allow access to repositories and can be used for supply chain attacks'},
37
37
SEC012: {id: 'SEC012',category: 'security',severity: 'high',message: 'Stripe live secret key exposed',fix: 'Move Stripe live keys to secure environment',impact: 'Live Stripe keys can be used to process payments and access customer data'},
38
38
SEC013: {id: 'SEC013',category: 'security',severity: 'medium',message: 'Stripe live publishable key exposed',fix: 'Use environment variable for Stripe keys',impact: 'Exposed payment keys can be used to initiate unauthorized transactions'},
39
-
SEC014: {id: 'SEC014',category: 'security',severity: 'high',message: 'OpenAI API key exposed',fix: 'Use OPENAI_API_KEY environment variable',impact: 'OpenAI keys can be stolen and used to run up charges on your account'},
39
+
SEC014: {id: 'SEC014',category: 'security',severity: 'high',message: 'OpenAI API key exposed',fix: 'Use OPENAI_API_KEY environment variable',impact: 'OpenAI keys can be stolen and used to run up charges on your account',helpUri: 'https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html'},
40
40
SEC015: {id: 'SEC015',category: 'security',severity: 'low',message: 'Console statement found (may leak sensitive info)',fix: 'Remove console statements before production',impact: 'Console logs can expose sensitive data in browser developer tools'},
41
-
SEC016: {id: 'SEC016',category: 'security',severity: 'high',message: 'Use of eval() detected (security risk)',fix: 'Replace eval() with safer alternatives',impact: 'eval() can execute malicious code and is a common vector for code injection attacks'},
42
-
SEC017: {id: 'SEC017',category: 'security',severity: 'medium',message: 'dangerouslySetInnerHTML usage (XSS risk)',fix: 'Sanitize HTML content or use safer alternatives',impact: 'Unsanitized HTML can inject malicious scripts that steal user data'},
43
-
SEC018: {id: 'SEC018',category: 'security',severity: 'high',message: 'High-entropy string literal (possible secret)',fix: 'Move secrets to environment variables; rotate credentials',impact: 'High-entropy strings often contain API keys or tokens that can be misused'},
41
+
SEC016: {id: 'SEC016',category: 'security',severity: 'high',message: 'Use of eval() detected (security risk)',fix: 'Replace eval() with safer alternatives',impact: 'eval() can execute malicious code and is a common vector for code injection attacks',helpUri: 'https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/eval'},
42
+
SEC017: {id: 'SEC017',category: 'security',severity: 'medium',message: 'dangerouslySetInnerHTML usage (XSS risk)',fix: 'Sanitize HTML content or use safer alternatives',impact: 'Unsanitized HTML can inject malicious scripts that steal user data',helpUri: 'https://react.dev/reference/react-dom/components/common#dangerously-setting-the-inner-html'},
43
+
SEC018: {id: 'SEC018',category: 'security',severity: 'high',message: 'High-entropy string literal (possible secret)',fix: 'Move secrets to environment variables; rotate credentials',impact: 'High-entropy strings often contain API keys or tokens that can be misused',helpUri: 'https://owasp.org/Top10/A02_2021-Cryptographic_Failures'},
44
44
SEC019: {id: 'SEC019',category: 'security',severity: 'high',message: 'React component injection via createElement',fix: 'Disallow dynamic element types from untrusted input',impact: 'Component injection can lead to XSS attacks and arbitrary code execution'},
45
-
LOG001: {id: 'LOG001',category: 'security',severity: 'medium',message: 'Potential secret logged to console/logger',fix: 'Avoid logging secrets; redact values before logging',impact: 'Secrets in logs can be exposed through log aggregation systems or error tracking'},
45
+
LOG001: {id: 'LOG001',category: 'security',severity: 'medium',message: 'Potential secret logged to console/logger',fix: 'Avoid logging secrets; redact values before logging',impact: 'Secrets in logs can be exposed through log aggregation systems or error tracking',helpUri: 'https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html'},
46
46
OSV001: {id: 'OSV001',category: 'security',severity: 'high',message: 'Vulnerable dependency detected',fix: 'Upgrade to a patched version'},
47
47
48
48
// Networking (JS)
49
-
JSNET001: {id: 'JSNET001',category: 'security',severity: 'medium',message: 'HTTP request without timeout/retry policy',fix: 'Add timeout/backoff to axios/fetch calls'},
49
+
JSNET001: {id: 'JSNET001',category: 'security',severity: 'medium',message: 'HTTP request without timeout/retry policy',fix: 'Add timeout/backoff to axios/fetch calls',helpUri: 'https://developer.mozilla.org/docs/Web/API/AbortController'},
50
50
51
51
// Cookies / headers
52
-
COOKIE001: {id: 'COOKIE001',category: 'security',severity: 'medium',message: 'Set-Cookie missing HttpOnly/Secure/SameSite',fix: 'Add HttpOnly; Secure; SameSite=Lax (or Strict) to cookies',impact: 'Insecure cookies can be stolen via XSS attacks or intercepted over insecure connections'},
53
-
COOKIE002: {id: 'COOKIE002',category: 'security',severity: 'high',message: 'JWT token exposed in client-side cookie without security flags',fix: 'Add HttpOnly and Secure flags to JWT cookies',impact: 'JWT tokens in insecure cookies can be stolen and used to impersonate users'},
52
+
COOKIE001: {id: 'COOKIE001',category: 'security',severity: 'medium',message: 'Set-Cookie missing HttpOnly/Secure/SameSite',fix: 'Add HttpOnly; Secure; SameSite=Lax (or Strict) to cookies',impact: 'Insecure cookies can be stolen via XSS attacks or intercepted over insecure connections',helpUri: 'https://owasp.org/www-community/controls/SecureCookieAttributes'},
53
+
COOKIE002: {id: 'COOKIE002',category: 'security',severity: 'high',message: 'JWT token exposed in client-side cookie without security flags',fix: 'Add HttpOnly and Secure flags to JWT cookies',impact: 'JWT tokens in insecure cookies can be stolen and used to impersonate users',helpUri: 'https://owasp.org/www-community/controls/SecureCookieAttributes'},
54
54
COOKIE003: {id: 'COOKIE003',category: 'security',severity: 'high',message: 'Sensitive data returned in JSON response (potential token leak)',fix: 'Avoid returning tokens/secrets in API responses; use secure cookies instead',impact: 'Tokens in JSON responses are visible to client-side JavaScript and can be stolen'},
55
55
COOKIE004: {id: 'COOKIE004',category: 'security',severity: 'medium',message: 'Cookie used without domain/path restrictions',fix: 'Set appropriate domain and path attributes for cookies',impact: 'Overly broad cookie scope can lead to unintended exposure to subdomains'},
NEXT007: {id: 'NEXT007',category: 'security',severity: 'high',message: 'JWT token exposed in Next.js API response',fix: 'Use httpOnly cookies instead of returning tokens in JSON',impact: 'JWT tokens in API responses can be stolen via XSS and used for session hijacking'},
101
101
NEXT008: {id: 'NEXT008',category: 'security',severity: 'medium',message: 'Missing security headers in Next.js API route',fix: 'Add security headers like X-Content-Type-Options, X-Frame-Options',impact: 'Missing security headers expose the application to various client-side attacks'},
102
-
NEXT009: {id: 'NEXT009',category: 'security',severity: 'high',message: 'Unsafe redirect in Next.js API route',fix: 'Validate redirect URLs against allowlist',impact: 'Open redirects can be used for phishing attacks and credential theft'},
103
-
NEXT010: {id: 'NEXT010',category: 'security',severity: 'medium',message: 'CORS configuration too permissive',fix: 'Restrict CORS to specific origins instead of using wildcard',impact: 'Overly permissive CORS allows malicious sites to make requests on behalf of users'},
104
-
NEXT011: {id: 'NEXT011',category: 'security',severity: 'high',message: 'Environment variable leaked in client-side code',fix: 'Use NEXT_PUBLIC_ prefix only for truly public variables',impact: 'Server-side environment variables exposed to client reveal sensitive configuration'}
102
+
NEXT009: {id: 'NEXT009',category: 'security',severity: 'high',message: 'Unsafe redirect in Next.js API route',fix: 'Validate redirect URLs against allowlist',impact: 'Open redirects can be used for phishing attacks and credential theft',helpUri: 'https://owasp.org/www-community/attacks/Unvalidated_Redirects_and_Forwards_Cheat_Sheet'},
103
+
NEXT010: {id: 'NEXT010',category: 'security',severity: 'medium',message: 'CORS configuration too permissive',fix: 'Restrict CORS to specific origins instead of using wildcard',impact: 'Overly permissive CORS allows malicious sites to make requests on behalf of users',helpUri: 'https://developer.mozilla.org/docs/Web/HTTP/CORS'},
104
+
NEXT011: {id: 'NEXT011',category: 'security',severity: 'high',message: 'Environment variable leaked in client-side code',fix: 'Use NEXT_PUBLIC_ prefix only for truly public variables',impact: 'Server-side environment variables exposed to client reveal sensitive configuration',helpUri: 'https://nextjs.org/docs/app/building-your-application/configuring/environment-variables#bundling-environment-variables-for-the-browser'}
0 commit comments