@zerothreatai/vulnerability-registry 9.0.5 → 9.0.7

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 (52) hide show
  1. package/dist/categories/authentication.js +22 -0
  2. package/dist/categories/injection.js +49 -0
  3. package/dist/categories/sensitive-data.d.ts +8 -0
  4. package/dist/categories/sensitive-data.js +96 -0
  5. package/dist/categories/xss.js +22 -0
  6. package/dist/compliances/compliance-by-vulnerabilities.d.ts +1 -1
  7. package/dist/compliances/compliance-by-vulnerabilities.js +9 -6
  8. package/dist/compliances/gdpr.js +2 -1
  9. package/dist/compliances/hipaa.js +2 -1
  10. package/dist/compliances/iso27001.js +2 -1
  11. package/dist/compliances/owasp.js +2 -1
  12. package/dist/compliances/pci-dss.js +2 -1
  13. package/dist/compliances/sans-top-25.js +1 -1
  14. package/dist/error-codes.d.ts +52 -0
  15. package/dist/error-codes.js +58 -0
  16. package/dist/index.d.ts +2 -1
  17. package/dist/index.js +2 -1
  18. package/dist/registry.js +2 -0
  19. package/dist/scanner.js +1 -0
  20. package/dist-cjs/categories/authentication.js +22 -0
  21. package/dist-cjs/categories/injection.js +49 -0
  22. package/dist-cjs/categories/sensitive-data.js +99 -0
  23. package/dist-cjs/categories/xss.js +22 -0
  24. package/dist-cjs/compliances/compliance-by-vulnerabilities.js +9 -6
  25. package/dist-cjs/compliances/gdpr.js +2 -1
  26. package/dist-cjs/compliances/hipaa.js +2 -1
  27. package/dist-cjs/compliances/iso27001.js +2 -1
  28. package/dist-cjs/compliances/owasp.js +2 -1
  29. package/dist-cjs/compliances/pci-dss.js +2 -1
  30. package/dist-cjs/compliances/sans-top-25.js +1 -1
  31. package/dist-cjs/error-codes.js +58 -0
  32. package/dist-cjs/index.js +3 -1
  33. package/dist-cjs/registry.js +2 -0
  34. package/dist-cjs/scanner.js +1 -0
  35. package/package.json +1 -1
  36. package/src/categories/authentication.ts +34 -11
  37. package/src/categories/injection.ts +59 -8
  38. package/src/categories/sensitive-data.ts +117 -0
  39. package/src/categories/xss.ts +23 -0
  40. package/src/compliances/compliance-by-vulnerabilities.ts +23 -19
  41. package/src/compliances/gdpr.ts +2 -1
  42. package/src/compliances/hipaa.ts +2 -1
  43. package/src/compliances/iso27001.ts +2 -1
  44. package/src/compliances/owasp.ts +2 -1
  45. package/src/compliances/pci-dss.ts +2 -1
  46. package/src/compliances/sans-top-25.ts +4 -1
  47. package/src/error-codes.ts +130 -70
  48. package/src/index.ts +9 -7
  49. package/src/registry.ts +2 -0
  50. package/src/scanner.ts +3 -2
  51. package/zerothreatai-vulnerability-registry-2.0.0.tgz +0 -0
  52. package/zerothreatai-vulnerability-registry-4npm .0.0.tgz +0 -0
@@ -791,11 +791,11 @@ export const INJECTION_VULNERABILITIES: Record<string, VulnerabilityDefinitionIn
791
791
  remediation: 'Use parameterized XPath queries and input validation. Normalize error and response behaviors to reduce side-channel differences. Apply rate limiting to limit inference attacks.',
792
792
  },
793
793
 
794
- [VulnerabilityCode.XPATH_ERROR_BASED]: {
795
- id: 333,
796
- code: VulnerabilityCode.XPATH_ERROR_BASED,
797
- title: 'XPath Injection Error Based',
798
- description: 'XPath injection vulnerability where malformed input triggers verbose error messages that reveal query structure or XML data, enabling attackers to craft precise XPath exploits or extract sensitive information.',
794
+ [VulnerabilityCode.XPATH_ERROR_BASED]: {
795
+ id: 333,
796
+ code: VulnerabilityCode.XPATH_ERROR_BASED,
797
+ title: 'XPath Injection Error Based',
798
+ description: 'XPath injection vulnerability where malformed input triggers verbose error messages that reveal query structure or XML data, enabling attackers to craft precise XPath exploits or extract sensitive information.',
799
799
  severity: 'medium',
800
800
  levelId: 3,
801
801
  category: 'injection',
@@ -811,9 +811,60 @@ export const INJECTION_VULNERABILITIES: Record<string, VulnerabilityDefinitionIn
811
811
  owasp: [
812
812
  { id: 'A03:2021', name: 'Injection', url: 'https://owasp.org/Top10/A03_2021-Injection/' },
813
813
  ],
814
- remediation: 'Suppress detailed XPath error messages in production. Use safe XPath APIs and validation to prevent injection. Implement centralized error handling with generic responses.',
815
- },
816
- };
814
+ remediation: 'Suppress detailed XPath error messages in production. Use safe XPath APIs and validation to prevent injection. Implement centralized error handling with generic responses.',
815
+ },
816
+
817
+ // ========================================
818
+ // PATH PARAMETER INJECTION
819
+ // ========================================
820
+ [VulnerabilityCode.PATH_PARAMETER_INJECTION]: {
821
+ id: 334,
822
+ code: VulnerabilityCode.PATH_PARAMETER_INJECTION,
823
+ title: 'Path Parameter Injection',
824
+ description: 'Path parameter injection vulnerability detected where user-controlled path segments trigger server errors or internal detail leaks, indicating unsafe handling of dynamic path values that may enable injection or traversal behaviors.',
825
+ severity: 'medium',
826
+ levelId: 3,
827
+ category: 'injection',
828
+ scanner: 'model-state',
829
+ groupName: 'Injection',
830
+ cvss: {
831
+ score: 6.1,
832
+ vector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N',
833
+ severity: 'MEDIUM',
834
+ },
835
+ cwe: [
836
+ { id: 'CWE-20', name: 'Improper Input Validation', url: 'https://cwe.mitre.org/data/definitions/20.html' },
837
+ ],
838
+ owasp: [
839
+ { id: 'A03:2021', name: 'Injection', url: 'https://owasp.org/Top10/A03_2021-Injection/' },
840
+ ],
841
+ remediation: 'Validate and constrain path parameters with allowlists or route constraints. Normalize and sanitize path inputs before use. Avoid passing raw path segments into file or query handlers.',
842
+ },
843
+
844
+ [VulnerabilityCode.HPP_DUPLICATE_PARAMETER]: {
845
+ id: 335,
846
+ code: VulnerabilityCode.HPP_DUPLICATE_PARAMETER,
847
+ title: 'HTTP Parameter Pollution',
848
+ description: 'HTTP parameter pollution vulnerability detected where duplicate query parameter keys trigger behavior distinct from both single-value control requests, indicating inconsistent duplicate-key handling that may enable logic bypasses or validation mismatches across components.',
849
+ severity: 'medium',
850
+ levelId: 3,
851
+ category: 'injection',
852
+ scanner: 'model-state',
853
+ groupName: 'HTTP Parameter Pollution',
854
+ cvss: {
855
+ score: 5.3,
856
+ vector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N',
857
+ severity: 'MEDIUM',
858
+ },
859
+ cwe: [
860
+ { id: 'CWE-235', name: 'Improper Handling of Extra Parameters', url: 'https://cwe.mitre.org/data/definitions/235.html' },
861
+ ],
862
+ owasp: [
863
+ { id: 'A04:2021', name: 'Insecure Design', url: 'https://owasp.org/Top10/A04_2021-Insecure_Design/' },
864
+ ],
865
+ remediation: 'Reject unexpected duplicate parameters or canonicalize them consistently at the edge. Ensure upstream proxies, frameworks, and application code all apply the same duplicate-key handling rules. Prefer strict allowlists for security-sensitive parameters.',
866
+ },
867
+ };
817
868
 
818
869
  export default INJECTION_VULNERABILITIES;
819
870
 
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Vulnerability Registry - Sensitive Data Exposure
3
+ *
4
+ * Definitions for high-confidence sensitive data exposures detected in content.
5
+ */
6
+
7
+ import { VulnerabilityCode } from '../error-codes.js';
8
+ import type { VulnerabilityDefinitionInput, Severity } from '../types.js';
9
+
10
+ const CWE_EXPOSURE = [
11
+ { id: 'CWE-200', name: 'Exposure of Sensitive Information to an Unauthorized Actor', url: 'https://cwe.mitre.org/data/definitions/200.html' },
12
+ ];
13
+
14
+ const OWASP_CRYPTO = [
15
+ { id: 'A02:2021', name: 'Cryptographic Failures', url: 'https://owasp.org/Top10/A02_2021-Cryptographic_Failures/' },
16
+ ];
17
+
18
+ const CVSS_BY_SEVERITY: Record<Severity, { score: number; vector: string; severity: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW' | 'NONE' }> = {
19
+ critical: { score: 9.1, vector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N', severity: 'CRITICAL' },
20
+ high: { score: 7.5, vector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N', severity: 'HIGH' },
21
+ medium: { score: 5.3, vector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N', severity: 'MEDIUM' },
22
+ low: { score: 3.1, vector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N', severity: 'LOW' },
23
+ info: { score: 0.0, vector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N', severity: 'NONE' },
24
+ };
25
+
26
+ const LEVEL_BY_SEVERITY: Record<Severity, 1 | 2 | 3 | 4 | 5> = {
27
+ critical: 1,
28
+ high: 2,
29
+ medium: 3,
30
+ low: 4,
31
+ info: 5,
32
+ };
33
+
34
+ const REMEDIATION =
35
+ 'Remove secrets from client-visible responses, rotate any exposed keys, and store secrets in a secure vault. Implement response redaction and ensure sensitive data is never returned to unauthenticated users.';
36
+
37
+ type SensitiveDataDef = {
38
+ id: number;
39
+ code: VulnerabilityCode;
40
+ title: string;
41
+ description: string;
42
+ severity: Severity;
43
+ };
44
+
45
+ const SENSITIVE_DATA_DEFS: SensitiveDataDef[] = [
46
+ { id: 608, code: VulnerabilityCode.SENS_DATA_AWS_ACCESS_KEY_ID, title: 'AWS Access Key ID Exposed', description: 'Exposure of an AWS Access Key ID in response content may allow unauthorized access to AWS resources.', severity: 'critical' },
47
+ { id: 609, code: VulnerabilityCode.SENS_DATA_AWS_SECRET_ACCESS_KEY, title: 'AWS Secret Access Key Exposed', description: 'Exposure of an AWS Secret Access Key in response content may allow unauthorized access to AWS resources.', severity: 'critical' },
48
+ { id: 610, code: VulnerabilityCode.SENS_DATA_AWS_MWS_AUTH_TOKEN, title: 'Amazon MWS Auth Token Exposed', description: 'Exposure of an Amazon MWS auth token in response content may allow unauthorized access to merchant APIs.', severity: 'critical' },
49
+ { id: 611, code: VulnerabilityCode.SENS_DATA_GOOGLE_API_KEY, title: 'Google API Key Exposed', description: 'Exposure of a Google API key in response content may allow unauthorized access to Google APIs.', severity: 'high' },
50
+ { id: 612, code: VulnerabilityCode.SENS_DATA_GOOGLE_OAUTH_TOKEN, title: 'Google OAuth Token Exposed', description: 'Exposure of a Google OAuth token in response content may allow unauthorized access to Google user data.', severity: 'high' },
51
+ { id: 613, code: VulnerabilityCode.SENS_DATA_GOOGLE_CLOUD_PRIVATE_KEY_ID, title: 'Google Cloud Private Key ID Exposed', description: 'Exposure of a Google Cloud private key ID in response content may allow unauthorized access to GCP services.', severity: 'critical' },
52
+ { id: 614, code: VulnerabilityCode.SENS_DATA_GITHUB_PAT, title: 'GitHub Personal Access Token Exposed', description: 'Exposure of a GitHub personal access token in response content may allow unauthorized access to repositories and APIs.', severity: 'critical' },
53
+ { id: 615, code: VulnerabilityCode.SENS_DATA_GITHUB_OAUTH_TOKEN, title: 'GitHub OAuth Token Exposed', description: 'Exposure of a GitHub OAuth token in response content may allow unauthorized access to GitHub APIs.', severity: 'critical' },
54
+ { id: 616, code: VulnerabilityCode.SENS_DATA_GITHUB_APP_TOKEN, title: 'GitHub App Token Exposed', description: 'Exposure of a GitHub App token in response content may allow unauthorized access to GitHub APIs.', severity: 'critical' },
55
+ { id: 617, code: VulnerabilityCode.SENS_DATA_GITHUB_REFRESH_TOKEN, title: 'GitHub Refresh Token Exposed', description: 'Exposure of a GitHub refresh token in response content may allow long-term unauthorized access.', severity: 'critical' },
56
+ { id: 618, code: VulnerabilityCode.SENS_DATA_GITLAB_PAT, title: 'GitLab Personal Access Token Exposed', description: 'Exposure of a GitLab personal access token in response content may allow unauthorized access to GitLab APIs.', severity: 'critical' },
57
+ { id: 619, code: VulnerabilityCode.SENS_DATA_GITLAB_PIPELINE_TOKEN, title: 'GitLab Pipeline Token Exposed', description: 'Exposure of a GitLab pipeline trigger token in response content may allow unauthorized pipeline execution.', severity: 'critical' },
58
+ { id: 620, code: VulnerabilityCode.SENS_DATA_AZURE_STORAGE_ACCOUNT_KEY, title: 'Azure Storage Account Key Exposed', description: 'Exposure of an Azure Storage account key in response content may allow unauthorized access to storage resources.', severity: 'critical' },
59
+ { id: 621, code: VulnerabilityCode.SENS_DATA_STRIPE_SECRET_KEY, title: 'Stripe Secret Key Exposed', description: 'Exposure of a Stripe secret key in response content may allow unauthorized payment operations.', severity: 'critical' },
60
+ { id: 622, code: VulnerabilityCode.SENS_DATA_STRIPE_PUBLISHABLE_KEY, title: 'Stripe Publishable Key Exposed', description: 'Exposure of a Stripe publishable key in response content may allow public API usage and metadata exposure.', severity: 'medium' },
61
+ { id: 623, code: VulnerabilityCode.SENS_DATA_STRIPE_RESTRICTED_KEY, title: 'Stripe Restricted Key Exposed', description: 'Exposure of a Stripe restricted key in response content may allow unauthorized access to restricted Stripe APIs.', severity: 'critical' },
62
+ { id: 624, code: VulnerabilityCode.SENS_DATA_SLACK_TOKEN, title: 'Slack Token Exposed', description: 'Exposure of a Slack token in response content may allow unauthorized access to Slack workspaces.', severity: 'critical' },
63
+ { id: 625, code: VulnerabilityCode.SENS_DATA_SLACK_WEBHOOK, title: 'Slack Webhook Exposed', description: 'Exposure of a Slack webhook URL in response content may allow unauthorized message posting.', severity: 'high' },
64
+ { id: 626, code: VulnerabilityCode.SENS_DATA_DISCORD_BOT_TOKEN, title: 'Discord Bot Token Exposed', description: 'Exposure of a Discord bot token in response content may allow unauthorized bot control.', severity: 'critical' },
65
+ { id: 627, code: VulnerabilityCode.SENS_DATA_DISCORD_WEBHOOK, title: 'Discord Webhook Exposed', description: 'Exposure of a Discord webhook URL in response content may allow unauthorized message posting.', severity: 'high' },
66
+ { id: 628, code: VulnerabilityCode.SENS_DATA_TWILIO_ACCOUNT_SID, title: 'Twilio Account SID Exposed', description: 'Exposure of a Twilio Account SID in response content may allow account enumeration or targeted attacks.', severity: 'high' },
67
+ { id: 629, code: VulnerabilityCode.SENS_DATA_SENDGRID_API_KEY, title: 'SendGrid API Key Exposed', description: 'Exposure of a SendGrid API key in response content may allow unauthorized email sending.', severity: 'critical' },
68
+ { id: 630, code: VulnerabilityCode.SENS_DATA_MAILGUN_API_KEY, title: 'Mailgun API Key Exposed', description: 'Exposure of a Mailgun API key in response content may allow unauthorized email sending.', severity: 'critical' },
69
+ { id: 631, code: VulnerabilityCode.SENS_DATA_MAILCHIMP_API_KEY, title: 'Mailchimp API Key Exposed', description: 'Exposure of a Mailchimp API key in response content may allow unauthorized access to marketing data.', severity: 'critical' },
70
+ { id: 632, code: VulnerabilityCode.SENS_DATA_NPM_TOKEN, title: 'NPM Token Exposed', description: 'Exposure of an NPM access token in response content may allow unauthorized package publication or access.', severity: 'critical' },
71
+ { id: 633, code: VulnerabilityCode.SENS_DATA_PYPI_TOKEN, title: 'PyPI Token Exposed', description: 'Exposure of a PyPI API token in response content may allow unauthorized package publication or access.', severity: 'critical' },
72
+ { id: 634, code: VulnerabilityCode.SENS_DATA_RSA_PRIVATE_KEY, title: 'RSA Private Key Exposed', description: 'Exposure of an RSA private key in response content may allow unauthorized decryption or authentication.', severity: 'critical' },
73
+ { id: 635, code: VulnerabilityCode.SENS_DATA_OPENSSH_PRIVATE_KEY, title: 'OpenSSH Private Key Exposed', description: 'Exposure of an OpenSSH private key in response content may allow unauthorized server access.', severity: 'critical' },
74
+ { id: 636, code: VulnerabilityCode.SENS_DATA_DSA_PRIVATE_KEY, title: 'DSA Private Key Exposed', description: 'Exposure of a DSA private key in response content may allow unauthorized decryption or authentication.', severity: 'critical' },
75
+ { id: 637, code: VulnerabilityCode.SENS_DATA_EC_PRIVATE_KEY, title: 'EC Private Key Exposed', description: 'Exposure of an EC private key in response content may allow unauthorized decryption or authentication.', severity: 'critical' },
76
+ { id: 638, code: VulnerabilityCode.SENS_DATA_PGP_PRIVATE_KEY, title: 'PGP Private Key Exposed', description: 'Exposure of a PGP private key in response content may allow unauthorized decryption or signing.', severity: 'critical' },
77
+ { id: 639, code: VulnerabilityCode.SENS_DATA_ENCRYPTED_PRIVATE_KEY, title: 'Encrypted Private Key Exposed', description: 'Exposure of an encrypted private key in response content may allow offline brute force and key recovery.', severity: 'critical' },
78
+ { id: 640, code: VulnerabilityCode.SENS_DATA_MONGODB_URI, title: 'MongoDB Connection String Exposed', description: 'Exposure of a MongoDB connection string in response content may allow unauthorized database access.', severity: 'critical' },
79
+ { id: 641, code: VulnerabilityCode.SENS_DATA_POSTGRESQL_URI, title: 'PostgreSQL Connection String Exposed', description: 'Exposure of a PostgreSQL connection string in response content may allow unauthorized database access.', severity: 'critical' },
80
+ { id: 642, code: VulnerabilityCode.SENS_DATA_MYSQL_URI, title: 'MySQL Connection String Exposed', description: 'Exposure of a MySQL connection string in response content may allow unauthorized database access.', severity: 'critical' },
81
+ { id: 643, code: VulnerabilityCode.SENS_DATA_REDIS_URI, title: 'Redis Connection String Exposed', description: 'Exposure of a Redis connection string in response content may allow unauthorized database access.', severity: 'critical' },
82
+ { id: 644, code: VulnerabilityCode.SENS_DATA_MSSQL_URI, title: 'MSSQL Connection String Exposed', description: 'Exposure of a Microsoft SQL Server connection string in response content may allow unauthorized database access.', severity: 'critical' },
83
+ { id: 645, code: VulnerabilityCode.SENS_DATA_DIGITALOCEAN_TOKEN, title: 'DigitalOcean Token Exposed', description: 'Exposure of a DigitalOcean token in response content may allow unauthorized access to cloud resources.', severity: 'critical' },
84
+ { id: 646, code: VulnerabilityCode.SENS_DATA_ALIBABA_CLOUD_ACCESS_KEY, title: 'Alibaba Cloud Access Key Exposed', description: 'Exposure of an Alibaba Cloud access key in response content may allow unauthorized access to cloud resources.', severity: 'critical' },
85
+ { id: 647, code: VulnerabilityCode.SENS_DATA_SQUARE_ACCESS_TOKEN, title: 'Square Access Token Exposed', description: 'Exposure of a Square access token in response content may allow unauthorized payment operations.', severity: 'critical' },
86
+ { id: 648, code: VulnerabilityCode.SENS_DATA_SQUARE_OAUTH_SECRET, title: 'Square OAuth Secret Exposed', description: 'Exposure of a Square OAuth secret in response content may allow unauthorized access to Square APIs.', severity: 'critical' },
87
+ { id: 649, code: VulnerabilityCode.SENS_DATA_SHOPIFY_ACCESS_TOKEN, title: 'Shopify Access Token Exposed', description: 'Exposure of a Shopify access token in response content may allow unauthorized access to Shopify APIs.', severity: 'critical' },
88
+ { id: 650, code: VulnerabilityCode.SENS_DATA_SHOPIFY_CUSTOM_APP_TOKEN, title: 'Shopify Custom App Token Exposed', description: 'Exposure of a Shopify custom app token in response content may allow unauthorized access to Shopify APIs.', severity: 'critical' },
89
+ { id: 651, code: VulnerabilityCode.SENS_DATA_SHOPIFY_PRIVATE_APP_TOKEN, title: 'Shopify Private App Token Exposed', description: 'Exposure of a Shopify private app token in response content may allow unauthorized access to Shopify APIs.', severity: 'critical' },
90
+ { id: 652, code: VulnerabilityCode.SENS_DATA_SHOPIFY_SHARED_SECRET, title: 'Shopify Shared Secret Exposed', description: 'Exposure of a Shopify shared secret in response content may allow unauthorized access to Shopify integrations.', severity: 'critical' },
91
+ { id: 653, code: VulnerabilityCode.SENS_DATA_TELEGRAM_BOT_TOKEN, title: 'Telegram Bot Token Exposed', description: 'Exposure of a Telegram bot token in response content may allow unauthorized bot control.', severity: 'critical' },
92
+ { id: 654, code: VulnerabilityCode.SENS_DATA_OPENAI_API_KEY, title: 'OpenAI API Key Exposed', description: 'Exposure of an OpenAI API key in response content may allow unauthorized API usage.', severity: 'critical' },
93
+ { id: 655, code: VulnerabilityCode.SENS_DATA_SENTRY_DSN, title: 'Sentry DSN Exposed', description: 'Exposure of a Sentry DSN in response content may allow unauthorized event submission.', severity: 'high' },
94
+ ];
95
+
96
+ export const SENSITIVE_DATA_VULNERABILITIES: Record<string, VulnerabilityDefinitionInput> = Object.fromEntries(
97
+ SENSITIVE_DATA_DEFS.map((def) => ([
98
+ def.code,
99
+ {
100
+ id: def.id,
101
+ code: def.code,
102
+ title: def.title,
103
+ description: def.description,
104
+ severity: def.severity,
105
+ levelId: LEVEL_BY_SEVERITY[def.severity],
106
+ category: 'information_disclosure',
107
+ scanner: 'sensitive-data',
108
+ groupName: 'Sensitive Data',
109
+ cvss: CVSS_BY_SEVERITY[def.severity],
110
+ cwe: CWE_EXPOSURE,
111
+ owasp: OWASP_CRYPTO,
112
+ remediation: REMEDIATION,
113
+ },
114
+ ]))
115
+ );
116
+
117
+ export default SENSITIVE_DATA_VULNERABILITIES;
@@ -354,4 +354,27 @@ export const XSS_VULNERABILITIES: Record<string, VulnerabilityDefinitionInput> =
354
354
  ],
355
355
  remediation: 'Use v-text instead of v-html for user content. Never compile user input as Vue templates. Use vue-runtime-only build that does not include template compiler. Sanitize mustache syntax.',
356
356
  },
357
+
358
+ [VulnerabilityCode.XSS_INSUFFICIENT_OUTPUT_ENCODING]: {
359
+ id: 415,
360
+ code: VulnerabilityCode.XSS_INSUFFICIENT_OUTPUT_ENCODING,
361
+ title: 'Insufficient Output Encoding',
362
+ description: 'Special characters are reflected without proper encoding in the response. While no direct XSS exploitation was confirmed, the incomplete encoding of characters like quotes, ampersands, or parentheses indicates potential encoding gaps that could lead to vulnerabilities in different contexts.',
363
+ severity: 'info',
364
+ levelId: 5,
365
+ category: 'xss',
366
+ scanner: 'xss',
367
+ cvss: {
368
+ score: 2.6,
369
+ vector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N',
370
+ severity: 'LOW',
371
+ },
372
+ cwe: [
373
+ { id: 'CWE-116', name: 'Improper Encoding or Escaping of Output', url: 'https://cwe.mitre.org/data/definitions/116.html' },
374
+ ],
375
+ owasp: [
376
+ { id: 'A03:2021', name: 'Injection', url: 'https://owasp.org/Top10/A03_2021-Injection/' },
377
+ ],
378
+ remediation: 'Implement comprehensive output encoding for all special characters including <, >, ", \', &, (, ), /, and \\. Use context-aware encoding based on the output location (HTML body, attributes, JavaScript, URL, CSS).',
379
+ },
357
380
  };
@@ -4,35 +4,39 @@ import {owaspA1Ids,owaspA2Ids,owaspA3Ids,owaspA5Ids,owaspA7Ids,owaspA8Ids} from
4
4
  import {allAppSecIds as pciAllAppSecIds,misconfigIds as pciMisconfigIds,accessControlIds as pciAccessControlIds,cryptoIds as pciCryptoIds,injectionAndXssIds as pciInjectionAndXssIds,authAndCookieIds as pciAuthAndCookieIds} from './pci-dss.js'
5
5
  import { authIds as sauthIds,accessControlIds as saccessControlIds,cmdiIds as scmdiIds,deserializationIds as sdeserializationIds,disclosureIds as sdisclosureIds,injectionIds as sinjectionIds,lfiIds as slfiIds,sqliIds,ssrfIds as ssrfids ,sstiIds as ssstiIds,xssIds as sxssIds} from './sans-top-25.js'
6
6
  import { isoAccessControlIds, isoCryptoIds, isoOpsSecurityIds, isoCommunicationsSecurityIds, isoSecureDevelopmentIds, isoComplianceIds } from './iso27001.js'
7
+ import { idsByCodes } from './helpers.js'
8
+
9
+ const pathInjectionIds = idsByCodes(['PATH_PARAMETER_INJECTION'])
10
+ const uniqueIds = (ids: number[]) => Array.from(new Set(ids))
7
11
  export const COMPLIANCE_BY_VULNERABILITIES = [
8
12
  {
9
13
  id:3,
10
14
  title:'GDPR',
11
- vulnerabilities:[...accessRestrictionIds,...allAppSecIds,...authAndCookieIds,...cryptoPolicyIds,...infoLeakageIds,...inputValidationIds,...outputValidationIds]
12
- },
13
- {
14
- id:2,
15
- title:'HIPAA',
16
- vulnerabilities:[accessControlIds,...hallAppSecIds,...hauthAnCookieIds,...cryptoIds,...integrityIds]
17
- },
18
- {
19
- id:1,
20
- title:'OWASP',
21
- vulnerabilities:[...owaspA1Ids,...owaspA2Ids,...owaspA3Ids,...owaspA5Ids,...owaspA7Ids,...owaspA8Ids]
22
- },
23
- {
24
- id:4,
25
- title:'PCI-DSS',
26
- vulnerabilities:[...pciAllAppSecIds,...pciMisconfigIds,...pciAccessControlIds,...pciCryptoIds,...pciInjectionAndXssIds,...pciAuthAndCookieIds]
27
- },
15
+ vulnerabilities: uniqueIds([...accessRestrictionIds,...allAppSecIds,...authAndCookieIds,...cryptoPolicyIds,...infoLeakageIds,...inputValidationIds,...outputValidationIds, ...pathInjectionIds])
16
+ },
17
+ {
18
+ id:2,
19
+ title:'HIPAA',
20
+ vulnerabilities: uniqueIds([...accessControlIds,...hallAppSecIds,...hauthAnCookieIds,...cryptoIds,...integrityIds, ...pathInjectionIds])
21
+ },
22
+ {
23
+ id:1,
24
+ title:'OWASP',
25
+ vulnerabilities: uniqueIds([...owaspA1Ids,...owaspA2Ids,...owaspA3Ids,...owaspA5Ids,...owaspA7Ids,...owaspA8Ids, ...pathInjectionIds])
26
+ },
27
+ {
28
+ id:4,
29
+ title:'PCI-DSS',
30
+ vulnerabilities: uniqueIds([...pciAllAppSecIds,...pciMisconfigIds,...pciAccessControlIds,...pciCryptoIds,...pciInjectionAndXssIds,...pciAuthAndCookieIds, ...pathInjectionIds])
31
+ },
28
32
  {
29
33
  id:6,
30
34
  title:'SANS Top 25',
31
- vulnerabilities:[...sauthIds,...saccessControlIds,...scmdiIds,...sdeserializationIds,...sdisclosureIds,...sinjectionIds,...slfiIds,...sqliIds,...ssrfids,...ssstiIds,...sxssIds]
35
+ vulnerabilities: uniqueIds([...sauthIds,...saccessControlIds,...scmdiIds,...sdeserializationIds,...sdisclosureIds,...sinjectionIds,...slfiIds,...sqliIds,...ssrfids,...ssstiIds,...sxssIds, ...pathInjectionIds])
32
36
  },
33
37
  {
34
38
  id:5,
35
39
  title:'ISO 27001',
36
- vulnerabilities:[...isoAccessControlIds,...isoCryptoIds,...isoOpsSecurityIds,...isoCommunicationsSecurityIds,...isoSecureDevelopmentIds,...isoComplianceIds]
40
+ vulnerabilities: uniqueIds([...isoAccessControlIds,...isoCryptoIds,...isoOpsSecurityIds,...isoCommunicationsSecurityIds,...isoSecureDevelopmentIds,...isoComplianceIds, ...pathInjectionIds])
37
41
  }
38
42
  ];
@@ -3,7 +3,8 @@ import { ComplianceCategory, ComplianceRegistry } from '../types.js';
3
3
  import { idsByCategory, idsByCodes, idsByCodePrefix, mergeIds } from './helpers.js';
4
4
 
5
5
  const authIds = idsByCategory('authentication');
6
- const injectionIds = idsByCategory('injection');
6
+ const pathInjectionIds = idsByCodes(['PATH_PARAMETER_INJECTION']);
7
+ const injectionIds = mergeIds(idsByCategory('injection'), pathInjectionIds);
7
8
  const xssIds = idsByCategory('xss');
8
9
  const ssrfIds = idsByCategory('ssrf');
9
10
  const configIds = idsByCategory('configuration');
@@ -3,7 +3,8 @@ import { ComplianceCategory, ComplianceRegistry } from '../types.js';
3
3
  import { idsByCategory, idsByCodes, idsByCodePrefix, mergeIds } from './helpers.js';
4
4
 
5
5
  const authIds = idsByCategory('authentication');
6
- const injectionIds = idsByCategory('injection');
6
+ const pathInjectionIds = idsByCodes(['PATH_PARAMETER_INJECTION']);
7
+ const injectionIds = mergeIds(idsByCategory('injection'), pathInjectionIds);
7
8
  const xssIds = idsByCategory('xss');
8
9
  const ssrfIds = idsByCategory('ssrf');
9
10
  const configIds = idsByCategory('configuration');
@@ -3,7 +3,8 @@ import { ComplianceCategory, ComplianceRegistry } from '../types.js';
3
3
  import { idsByCategory, idsByCodePrefix, idsByCodes, mergeIds } from './helpers.js';
4
4
 
5
5
  const authIds = idsByCategory('authentication');
6
- const injectionIds = idsByCategory('injection');
6
+ const pathInjectionIds = idsByCodes(['PATH_PARAMETER_INJECTION']);
7
+ const injectionIds = mergeIds(idsByCategory('injection'), pathInjectionIds);
7
8
  const xssIds = idsByCategory('xss');
8
9
  const ssrfIds = idsByCategory('ssrf');
9
10
  const configIds = idsByCategory('configuration');
@@ -3,7 +3,8 @@ import { ComplianceCategory, ComplianceRegistry } from '../types.js';
3
3
  import { idsByCategory, idsByCodes, idsByCodePrefix, mergeIds } from './helpers.js';
4
4
 
5
5
  const authIds = idsByCategory('authentication');
6
- const injectionIds = idsByCategory('injection');
6
+ const pathInjectionIds = idsByCodes(['PATH_PARAMETER_INJECTION']);
7
+ const injectionIds = mergeIds(idsByCategory('injection'), pathInjectionIds);
7
8
  const xssIds = idsByCategory('xss');
8
9
  const ssrfIds = idsByCategory('ssrf');
9
10
  const configIds = idsByCategory('configuration');
@@ -3,7 +3,8 @@ import { ComplianceCategory, ComplianceRegistry } from '../types.js';
3
3
  import { idsByCategory, idsByCodes, idsByCodePrefix, mergeIds } from './helpers.js';
4
4
 
5
5
  const authIds = idsByCategory('authentication');
6
- const injectionIds = idsByCategory('injection');
6
+ const pathInjectionIds = idsByCodes(['PATH_PARAMETER_INJECTION']);
7
+ const injectionIds = mergeIds(idsByCategory('injection'), pathInjectionIds);
7
8
  const xssIds = idsByCategory('xss');
8
9
  const ssrfIds = idsByCategory('ssrf');
9
10
  const configIds = idsByCategory('configuration');
@@ -3,7 +3,10 @@ import { ComplianceCategory, ComplianceRegistry } from '../types.js';
3
3
  import { idsByCategory, idsByCodePrefix, mergeIds } from './helpers.js';
4
4
 
5
5
  export const authIds = idsByCategory('authentication');
6
- export const injectionIds = idsByCategory('injection');
6
+ export const injectionIds = mergeIds(
7
+ idsByCategory('injection'),
8
+ idsByCodePrefix(['PATH_PARAMETER_INJECTION'])
9
+ );
7
10
  export const xssIds = idsByCategory('xss');
8
11
  export const ssrfIds = idsByCategory('ssrf');
9
12
  export const disclosureIds = idsByCategory('information_disclosure');
@@ -15,6 +15,11 @@ export enum VulnerabilityCode {
15
15
  SQLI_STACK_BASED = 'SQLI_STACK_BASED',
16
16
  SQLI_UNION_BASED = 'SQLI_UNION_BASED',
17
17
 
18
+ // ========================================
19
+ // PATH INJECTION (PATH_*)
20
+ // ========================================
21
+ PATH_PARAMETER_INJECTION = 'PATH_PARAMETER_INJECTION',
22
+
18
23
  // ========================================
19
24
  // CROSS-SITE SCRIPTING (XSS_*)
20
25
  // ========================================
@@ -33,6 +38,7 @@ export enum VulnerabilityCode {
33
38
  XSS_CSP_BYPASS = 'XSS_CSP_BYPASS',
34
39
  XSS_TEMPLATE_LITERAL = 'XSS_TEMPLATE_LITERAL',
35
40
  XSS_MUTATION_BASED = 'XSS_MUTATION_BASED',
41
+ XSS_INSUFFICIENT_OUTPUT_ENCODING = 'XSS_INSUFFICIENT_OUTPUT_ENCODING',
36
42
 
37
43
  // ========================================
38
44
  // COMMAND INJECTION (CMDI_*)
@@ -101,13 +107,14 @@ export enum VulnerabilityCode {
101
107
  JWT_EXPIRED_TOKEN = 'JWT_EXPIRED_TOKEN',
102
108
  JWT_MISSING_CLAIMS = 'JWT_MISSING_CLAIMS',
103
109
  JWT_CLAIM_TAMPERING = 'JWT_CLAIM_TAMPERING',
104
- JWT_KID_INJECTION = 'JWT_KID_INJECTION',
105
- JWT_JKU_INJECTION = 'JWT_JKU_INJECTION',
106
- JWT_EMBEDDED_JWK = 'JWT_EMBEDDED_JWK',
107
- JWT_X5C_INJECTION = 'JWT_X5C_INJECTION',
108
-
109
- // ========================================
110
- // OPEN REDIRECT (REDIRECT_*)
110
+ JWT_KID_INJECTION = 'JWT_KID_INJECTION',
111
+ JWT_JKU_INJECTION = 'JWT_JKU_INJECTION',
112
+ JWT_EMBEDDED_JWK = 'JWT_EMBEDDED_JWK',
113
+ JWT_X5C_INJECTION = 'JWT_X5C_INJECTION',
114
+ AUTH_SESSION_NOT_INVALIDATED_ON_LOGOUT = 'AUTH_SESSION_NOT_INVALIDATED_ON_LOGOUT',
115
+
116
+ // ========================================
117
+ // OPEN REDIRECT (REDIRECT_*)
111
118
  // ========================================
112
119
  REDIRECT_HEADER_INJECTION = 'REDIRECT_HEADER_INJECTION',
113
120
  REDIRECT_META_REFRESH = 'REDIRECT_META_REFRESH',
@@ -128,36 +135,36 @@ export enum VulnerabilityCode {
128
135
  HEADER_MISSING_HSTS = 'HEADER_MISSING_HSTS',
129
136
  HEADER_MISSING_XFRAME = 'HEADER_MISSING_XFRAME',
130
137
  HEADER_MISSING_XCONTENT_TYPE = 'HEADER_MISSING_XCONTENT_TYPE',
131
- HEADER_MISSING_XSS_PROTECTION = 'HEADER_MISSING_XSS_PROTECTION',
132
- HEADER_MISSING_REFERRER_POLICY = 'HEADER_MISSING_REFERRER_POLICY',
133
- HEADER_MISSING_PERMISSIONS_POLICY = 'HEADER_MISSING_PERMISSIONS_POLICY',
134
- HEADER_WEAK_CSP = 'HEADER_WEAK_CSP',
135
- HEADER_CSP_REPORT_ONLY = 'HEADER_CSP_REPORT_ONLY',
136
- HEADER_CSP_WEAK_DIRECTIVES = 'HEADER_CSP_WEAK_DIRECTIVES',
137
- HEADER_CSP_DATA_URI_SCRIPT = 'HEADER_CSP_DATA_URI_SCRIPT',
138
- HEADER_CSP_BLOB_URI_SCRIPT = 'HEADER_CSP_BLOB_URI_SCRIPT',
139
- HEADER_CSP_WILDCARD_DEFAULT = 'HEADER_CSP_WILDCARD_DEFAULT',
140
- HEADER_CSP_NO_BASE_URI = 'HEADER_CSP_NO_BASE_URI',
141
- HEADER_CSP_NO_OBJECT_SRC = 'HEADER_CSP_NO_OBJECT_SRC',
142
- HEADER_CSP_NO_FRAME_ANCESTORS = 'HEADER_CSP_NO_FRAME_ANCESTORS',
143
- HEADER_CORS_MISCONFIGURED = 'HEADER_CORS_MISCONFIGURED',
144
- HEADER_CORS_STAR_WITH_CREDENTIALS = 'HEADER_CORS_STAR_WITH_CREDENTIALS',
145
- HEADER_CORS_ORIGIN_REFLECT_NO_VARY = 'HEADER_CORS_ORIGIN_REFLECT_NO_VARY',
146
- HEADER_CORS_NULL_ORIGIN = 'HEADER_CORS_NULL_ORIGIN',
147
- HEADER_CORS_WILDCARD_SUBDOMAIN = 'HEADER_CORS_WILDCARD_SUBDOMAIN',
148
- HEADER_COEP_WITHOUT_COOP = 'HEADER_COEP_WITHOUT_COOP',
149
- HEADER_CORP_UNUSUAL = 'HEADER_CORP_UNUSUAL',
150
- HEADER_EXPECT_CT_PRESENT = 'HEADER_EXPECT_CT_PRESENT',
151
- HEADER_SERVER_HEADER_PRESENT = 'HEADER_SERVER_HEADER_PRESENT',
152
- HEADER_X_POWERED_BY_PRESENT = 'HEADER_X_POWERED_BY_PRESENT',
153
- HEADER_X_XSS_PROTECTION_ENABLED = 'HEADER_X_XSS_PROTECTION_ENABLED',
154
- HEADER_XCONTENT_TYPE_INVALID = 'HEADER_XCONTENT_TYPE_INVALID',
155
- HEADER_REFERRER_POLICY_UNSAFE = 'HEADER_REFERRER_POLICY_UNSAFE',
156
- HEADER_HSTS_BAD_MAX_AGE = 'HEADER_HSTS_BAD_MAX_AGE',
157
- HEADER_HSTS_SHORT_MAX_AGE = 'HEADER_HSTS_SHORT_MAX_AGE',
158
- HEADER_HSTS_NO_INCLUDESUBDOMAINS = 'HEADER_HSTS_NO_INCLUDESUBDOMAINS',
159
- HEADER_HSTS_PRELOAD_LOW_MAX_AGE = 'HEADER_HSTS_PRELOAD_LOW_MAX_AGE',
160
- COOKIE_SAMESITE_NONE_WITHOUT_SECURE = 'COOKIE_SAMESITE_NONE_WITHOUT_SECURE',
138
+ HEADER_MISSING_XSS_PROTECTION = 'HEADER_MISSING_XSS_PROTECTION',
139
+ HEADER_MISSING_REFERRER_POLICY = 'HEADER_MISSING_REFERRER_POLICY',
140
+ HEADER_MISSING_PERMISSIONS_POLICY = 'HEADER_MISSING_PERMISSIONS_POLICY',
141
+ HEADER_WEAK_CSP = 'HEADER_WEAK_CSP',
142
+ HEADER_CSP_REPORT_ONLY = 'HEADER_CSP_REPORT_ONLY',
143
+ HEADER_CSP_WEAK_DIRECTIVES = 'HEADER_CSP_WEAK_DIRECTIVES',
144
+ HEADER_CSP_DATA_URI_SCRIPT = 'HEADER_CSP_DATA_URI_SCRIPT',
145
+ HEADER_CSP_BLOB_URI_SCRIPT = 'HEADER_CSP_BLOB_URI_SCRIPT',
146
+ HEADER_CSP_WILDCARD_DEFAULT = 'HEADER_CSP_WILDCARD_DEFAULT',
147
+ HEADER_CSP_NO_BASE_URI = 'HEADER_CSP_NO_BASE_URI',
148
+ HEADER_CSP_NO_OBJECT_SRC = 'HEADER_CSP_NO_OBJECT_SRC',
149
+ HEADER_CSP_NO_FRAME_ANCESTORS = 'HEADER_CSP_NO_FRAME_ANCESTORS',
150
+ HEADER_CORS_MISCONFIGURED = 'HEADER_CORS_MISCONFIGURED',
151
+ HEADER_CORS_STAR_WITH_CREDENTIALS = 'HEADER_CORS_STAR_WITH_CREDENTIALS',
152
+ HEADER_CORS_ORIGIN_REFLECT_NO_VARY = 'HEADER_CORS_ORIGIN_REFLECT_NO_VARY',
153
+ HEADER_CORS_NULL_ORIGIN = 'HEADER_CORS_NULL_ORIGIN',
154
+ HEADER_CORS_WILDCARD_SUBDOMAIN = 'HEADER_CORS_WILDCARD_SUBDOMAIN',
155
+ HEADER_COEP_WITHOUT_COOP = 'HEADER_COEP_WITHOUT_COOP',
156
+ HEADER_CORP_UNUSUAL = 'HEADER_CORP_UNUSUAL',
157
+ HEADER_EXPECT_CT_PRESENT = 'HEADER_EXPECT_CT_PRESENT',
158
+ HEADER_SERVER_HEADER_PRESENT = 'HEADER_SERVER_HEADER_PRESENT',
159
+ HEADER_X_POWERED_BY_PRESENT = 'HEADER_X_POWERED_BY_PRESENT',
160
+ HEADER_X_XSS_PROTECTION_ENABLED = 'HEADER_X_XSS_PROTECTION_ENABLED',
161
+ HEADER_XCONTENT_TYPE_INVALID = 'HEADER_XCONTENT_TYPE_INVALID',
162
+ HEADER_REFERRER_POLICY_UNSAFE = 'HEADER_REFERRER_POLICY_UNSAFE',
163
+ HEADER_HSTS_BAD_MAX_AGE = 'HEADER_HSTS_BAD_MAX_AGE',
164
+ HEADER_HSTS_SHORT_MAX_AGE = 'HEADER_HSTS_SHORT_MAX_AGE',
165
+ HEADER_HSTS_NO_INCLUDESUBDOMAINS = 'HEADER_HSTS_NO_INCLUDESUBDOMAINS',
166
+ HEADER_HSTS_PRELOAD_LOW_MAX_AGE = 'HEADER_HSTS_PRELOAD_LOW_MAX_AGE',
167
+ COOKIE_SAMESITE_NONE_WITHOUT_SECURE = 'COOKIE_SAMESITE_NONE_WITHOUT_SECURE',
161
168
  COOKIE_SESSION_MISSING_SECURE = 'COOKIE_SESSION_MISSING_SECURE',
162
169
  COOKIE_MISSING_SECURE = 'COOKIE_MISSING_SECURE',
163
170
  COOKIE_SESSION_MISSING_HTTPONLY = 'COOKIE_SESSION_MISSING_HTTPONLY',
@@ -182,41 +189,42 @@ export enum VulnerabilityCode {
182
189
  HOST_PASSWORD_RESET = 'HOST_PASSWORD_RESET',
183
190
  HOST_REDIRECT = 'HOST_REDIRECT',
184
191
 
185
- // ========================================
186
- // DIRECTORY BROWSING (DIRBROWSE_*)
187
- // ========================================
188
- DIRBROWSE_GENERIC = 'DIRBROWSE_GENERIC',
189
- DIRBROWSE_GENERIC_SENSITIVE = 'DIRBROWSE_GENERIC_SENSITIVE',
190
- DIRBROWSE_APACHE = 'DIRBROWSE_APACHE',
191
- DIRBROWSE_APACHE_SENSITIVE = 'DIRBROWSE_APACHE_SENSITIVE',
192
- DIRBROWSE_NGINX = 'DIRBROWSE_NGINX',
193
- DIRBROWSE_NGINX_SENSITIVE = 'DIRBROWSE_NGINX_SENSITIVE',
194
- DIRBROWSE_IIS = 'DIRBROWSE_IIS',
195
- DIRBROWSE_IIS_SENSITIVE = 'DIRBROWSE_IIS_SENSITIVE',
196
- DIRBROWSE_TOMCAT = 'DIRBROWSE_TOMCAT',
197
- DIRBROWSE_TOMCAT_SENSITIVE = 'DIRBROWSE_TOMCAT_SENSITIVE',
198
- DIRBROWSE_CADDY = 'DIRBROWSE_CADDY',
199
- DIRBROWSE_CADDY_SENSITIVE = 'DIRBROWSE_CADDY_SENSITIVE',
200
- DIRBROWSE_WEBDAV = 'DIRBROWSE_WEBDAV',
201
- DIRBROWSE_WEBDAV_SENSITIVE = 'DIRBROWSE_WEBDAV_SENSITIVE',
202
- DIRBROWSE_S3 = 'DIRBROWSE_S3',
203
- DIRBROWSE_S3_SENSITIVE = 'DIRBROWSE_S3_SENSITIVE',
204
- DIRBROWSE_GCS = 'DIRBROWSE_GCS',
205
- DIRBROWSE_GCS_SENSITIVE = 'DIRBROWSE_GCS_SENSITIVE',
206
- DIRBROWSE_AZURE_BLOB = 'DIRBROWSE_AZURE_BLOB',
207
- DIRBROWSE_AZURE_BLOB_SENSITIVE = 'DIRBROWSE_AZURE_BLOB_SENSITIVE',
208
- DIRBROWSE_ENABLED = 'DIRBROWSE_ENABLED',
209
- DIRBROWSE_SENSITIVE = 'DIRBROWSE_SENSITIVE',
210
-
211
- // ========================================
212
- // MASS ASSIGNMENT (MASSASSIGN_*)
213
192
  // ========================================
214
- MASSASSIGN_PROTOTYPE_POLLUTION = 'MASSASSIGN_PROTOTYPE_POLLUTION',
215
- MASSASSIGN_ROLE_ESCALATION = 'MASSASSIGN_ROLE_ESCALATION',
216
- MASSASSIGN_HIDDEN_FIELD = 'MASSASSIGN_HIDDEN_FIELD',
193
+ // DIRECTORY BROWSING (DIRBROWSE_*)
194
+ // ========================================
195
+ DIRBROWSE_GENERIC = 'DIRBROWSE_GENERIC',
196
+ DIRBROWSE_GENERIC_SENSITIVE = 'DIRBROWSE_GENERIC_SENSITIVE',
197
+ DIRBROWSE_APACHE = 'DIRBROWSE_APACHE',
198
+ DIRBROWSE_APACHE_SENSITIVE = 'DIRBROWSE_APACHE_SENSITIVE',
199
+ DIRBROWSE_NGINX = 'DIRBROWSE_NGINX',
200
+ DIRBROWSE_NGINX_SENSITIVE = 'DIRBROWSE_NGINX_SENSITIVE',
201
+ DIRBROWSE_IIS = 'DIRBROWSE_IIS',
202
+ DIRBROWSE_IIS_SENSITIVE = 'DIRBROWSE_IIS_SENSITIVE',
203
+ DIRBROWSE_TOMCAT = 'DIRBROWSE_TOMCAT',
204
+ DIRBROWSE_TOMCAT_SENSITIVE = 'DIRBROWSE_TOMCAT_SENSITIVE',
205
+ DIRBROWSE_CADDY = 'DIRBROWSE_CADDY',
206
+ DIRBROWSE_CADDY_SENSITIVE = 'DIRBROWSE_CADDY_SENSITIVE',
207
+ DIRBROWSE_WEBDAV = 'DIRBROWSE_WEBDAV',
208
+ DIRBROWSE_WEBDAV_SENSITIVE = 'DIRBROWSE_WEBDAV_SENSITIVE',
209
+ DIRBROWSE_S3 = 'DIRBROWSE_S3',
210
+ DIRBROWSE_S3_SENSITIVE = 'DIRBROWSE_S3_SENSITIVE',
211
+ DIRBROWSE_GCS = 'DIRBROWSE_GCS',
212
+ DIRBROWSE_GCS_SENSITIVE = 'DIRBROWSE_GCS_SENSITIVE',
213
+ DIRBROWSE_AZURE_BLOB = 'DIRBROWSE_AZURE_BLOB',
214
+ DIRBROWSE_AZURE_BLOB_SENSITIVE = 'DIRBROWSE_AZURE_BLOB_SENSITIVE',
215
+ DIRBROWSE_ENABLED = 'DIRBROWSE_ENABLED',
216
+ DIRBROWSE_SENSITIVE = 'DIRBROWSE_SENSITIVE',
217
217
 
218
- // ========================================
219
- // DESERIALIZATION (DESER_*)
218
+ // ========================================
219
+ // MASS ASSIGNMENT (MASSASSIGN_*)
220
+ // ========================================
221
+ MASSASSIGN_PROTOTYPE_POLLUTION = 'MASSASSIGN_PROTOTYPE_POLLUTION',
222
+ MASSASSIGN_ROLE_ESCALATION = 'MASSASSIGN_ROLE_ESCALATION',
223
+ MASSASSIGN_HIDDEN_FIELD = 'MASSASSIGN_HIDDEN_FIELD',
224
+ HPP_DUPLICATE_PARAMETER = 'HPP_DUPLICATE_PARAMETER',
225
+
226
+ // ========================================
227
+ // DESERIALIZATION (DESER_*)
220
228
  // ========================================
221
229
  DESER_JAVA = 'DESER_JAVA',
222
230
  DESER_PHP = 'DESER_PHP',
@@ -362,6 +370,58 @@ export enum VulnerabilityCode {
362
370
  SENS_LOW_SERVERLESS_CONFIG_EXPOSED = 'SENS_LOW_SERVERLESS_CONFIG_EXPOSED',
363
371
  SENS_LOW_CLOUD_FORMATION_TEMPLATE_EXPOSED = 'SENS_LOW_CLOUD_FORMATION_TEMPLATE_EXPOSED',
364
372
 
373
+ // ========================================
374
+ // SENSITIVE DATA EXPOSURE (SENS_DATA_*)
375
+ // ========================================
376
+ SENS_DATA_AWS_ACCESS_KEY_ID = 'SENS_DATA_AWS_ACCESS_KEY_ID',
377
+ SENS_DATA_AWS_SECRET_ACCESS_KEY = 'SENS_DATA_AWS_SECRET_ACCESS_KEY',
378
+ SENS_DATA_AWS_MWS_AUTH_TOKEN = 'SENS_DATA_AWS_MWS_AUTH_TOKEN',
379
+ SENS_DATA_GOOGLE_API_KEY = 'SENS_DATA_GOOGLE_API_KEY',
380
+ SENS_DATA_GOOGLE_OAUTH_TOKEN = 'SENS_DATA_GOOGLE_OAUTH_TOKEN',
381
+ SENS_DATA_GOOGLE_CLOUD_PRIVATE_KEY_ID = 'SENS_DATA_GOOGLE_CLOUD_PRIVATE_KEY_ID',
382
+ SENS_DATA_GITHUB_PAT = 'SENS_DATA_GITHUB_PAT',
383
+ SENS_DATA_GITHUB_OAUTH_TOKEN = 'SENS_DATA_GITHUB_OAUTH_TOKEN',
384
+ SENS_DATA_GITHUB_APP_TOKEN = 'SENS_DATA_GITHUB_APP_TOKEN',
385
+ SENS_DATA_GITHUB_REFRESH_TOKEN = 'SENS_DATA_GITHUB_REFRESH_TOKEN',
386
+ SENS_DATA_GITLAB_PAT = 'SENS_DATA_GITLAB_PAT',
387
+ SENS_DATA_GITLAB_PIPELINE_TOKEN = 'SENS_DATA_GITLAB_PIPELINE_TOKEN',
388
+ SENS_DATA_AZURE_STORAGE_ACCOUNT_KEY = 'SENS_DATA_AZURE_STORAGE_ACCOUNT_KEY',
389
+ SENS_DATA_STRIPE_SECRET_KEY = 'SENS_DATA_STRIPE_SECRET_KEY',
390
+ SENS_DATA_STRIPE_PUBLISHABLE_KEY = 'SENS_DATA_STRIPE_PUBLISHABLE_KEY',
391
+ SENS_DATA_STRIPE_RESTRICTED_KEY = 'SENS_DATA_STRIPE_RESTRICTED_KEY',
392
+ SENS_DATA_SLACK_TOKEN = 'SENS_DATA_SLACK_TOKEN',
393
+ SENS_DATA_SLACK_WEBHOOK = 'SENS_DATA_SLACK_WEBHOOK',
394
+ SENS_DATA_DISCORD_BOT_TOKEN = 'SENS_DATA_DISCORD_BOT_TOKEN',
395
+ SENS_DATA_DISCORD_WEBHOOK = 'SENS_DATA_DISCORD_WEBHOOK',
396
+ SENS_DATA_TWILIO_ACCOUNT_SID = 'SENS_DATA_TWILIO_ACCOUNT_SID',
397
+ SENS_DATA_SENDGRID_API_KEY = 'SENS_DATA_SENDGRID_API_KEY',
398
+ SENS_DATA_MAILGUN_API_KEY = 'SENS_DATA_MAILGUN_API_KEY',
399
+ SENS_DATA_MAILCHIMP_API_KEY = 'SENS_DATA_MAILCHIMP_API_KEY',
400
+ SENS_DATA_NPM_TOKEN = 'SENS_DATA_NPM_TOKEN',
401
+ SENS_DATA_PYPI_TOKEN = 'SENS_DATA_PYPI_TOKEN',
402
+ SENS_DATA_RSA_PRIVATE_KEY = 'SENS_DATA_RSA_PRIVATE_KEY',
403
+ SENS_DATA_OPENSSH_PRIVATE_KEY = 'SENS_DATA_OPENSSH_PRIVATE_KEY',
404
+ SENS_DATA_DSA_PRIVATE_KEY = 'SENS_DATA_DSA_PRIVATE_KEY',
405
+ SENS_DATA_EC_PRIVATE_KEY = 'SENS_DATA_EC_PRIVATE_KEY',
406
+ SENS_DATA_PGP_PRIVATE_KEY = 'SENS_DATA_PGP_PRIVATE_KEY',
407
+ SENS_DATA_ENCRYPTED_PRIVATE_KEY = 'SENS_DATA_ENCRYPTED_PRIVATE_KEY',
408
+ SENS_DATA_MONGODB_URI = 'SENS_DATA_MONGODB_URI',
409
+ SENS_DATA_POSTGRESQL_URI = 'SENS_DATA_POSTGRESQL_URI',
410
+ SENS_DATA_MYSQL_URI = 'SENS_DATA_MYSQL_URI',
411
+ SENS_DATA_REDIS_URI = 'SENS_DATA_REDIS_URI',
412
+ SENS_DATA_MSSQL_URI = 'SENS_DATA_MSSQL_URI',
413
+ SENS_DATA_DIGITALOCEAN_TOKEN = 'SENS_DATA_DIGITALOCEAN_TOKEN',
414
+ SENS_DATA_ALIBABA_CLOUD_ACCESS_KEY = 'SENS_DATA_ALIBABA_CLOUD_ACCESS_KEY',
415
+ SENS_DATA_SQUARE_ACCESS_TOKEN = 'SENS_DATA_SQUARE_ACCESS_TOKEN',
416
+ SENS_DATA_SQUARE_OAUTH_SECRET = 'SENS_DATA_SQUARE_OAUTH_SECRET',
417
+ SENS_DATA_SHOPIFY_ACCESS_TOKEN = 'SENS_DATA_SHOPIFY_ACCESS_TOKEN',
418
+ SENS_DATA_SHOPIFY_CUSTOM_APP_TOKEN = 'SENS_DATA_SHOPIFY_CUSTOM_APP_TOKEN',
419
+ SENS_DATA_SHOPIFY_PRIVATE_APP_TOKEN = 'SENS_DATA_SHOPIFY_PRIVATE_APP_TOKEN',
420
+ SENS_DATA_SHOPIFY_SHARED_SECRET = 'SENS_DATA_SHOPIFY_SHARED_SECRET',
421
+ SENS_DATA_TELEGRAM_BOT_TOKEN = 'SENS_DATA_TELEGRAM_BOT_TOKEN',
422
+ SENS_DATA_OPENAI_API_KEY = 'SENS_DATA_OPENAI_API_KEY',
423
+ SENS_DATA_SENTRY_DSN = 'SENS_DATA_SENTRY_DSN',
424
+
365
425
  // ========================================
366
426
  // CLICKJACKING (CLICK_*)
367
427
  // ========================================