@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.
- package/dist/categories/authentication.js +22 -0
- package/dist/categories/injection.js +49 -0
- package/dist/categories/sensitive-data.d.ts +8 -0
- package/dist/categories/sensitive-data.js +96 -0
- package/dist/categories/xss.js +22 -0
- package/dist/compliances/compliance-by-vulnerabilities.d.ts +1 -1
- package/dist/compliances/compliance-by-vulnerabilities.js +9 -6
- package/dist/compliances/gdpr.js +2 -1
- package/dist/compliances/hipaa.js +2 -1
- package/dist/compliances/iso27001.js +2 -1
- package/dist/compliances/owasp.js +2 -1
- package/dist/compliances/pci-dss.js +2 -1
- package/dist/compliances/sans-top-25.js +1 -1
- package/dist/error-codes.d.ts +52 -0
- package/dist/error-codes.js +58 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/registry.js +2 -0
- package/dist/scanner.js +1 -0
- package/dist-cjs/categories/authentication.js +22 -0
- package/dist-cjs/categories/injection.js +49 -0
- package/dist-cjs/categories/sensitive-data.js +99 -0
- package/dist-cjs/categories/xss.js +22 -0
- package/dist-cjs/compliances/compliance-by-vulnerabilities.js +9 -6
- package/dist-cjs/compliances/gdpr.js +2 -1
- package/dist-cjs/compliances/hipaa.js +2 -1
- package/dist-cjs/compliances/iso27001.js +2 -1
- package/dist-cjs/compliances/owasp.js +2 -1
- package/dist-cjs/compliances/pci-dss.js +2 -1
- package/dist-cjs/compliances/sans-top-25.js +1 -1
- package/dist-cjs/error-codes.js +58 -0
- package/dist-cjs/index.js +3 -1
- package/dist-cjs/registry.js +2 -0
- package/dist-cjs/scanner.js +1 -0
- package/package.json +1 -1
- package/src/categories/authentication.ts +34 -11
- package/src/categories/injection.ts +59 -8
- package/src/categories/sensitive-data.ts +117 -0
- package/src/categories/xss.ts +23 -0
- package/src/compliances/compliance-by-vulnerabilities.ts +23 -19
- package/src/compliances/gdpr.ts +2 -1
- package/src/compliances/hipaa.ts +2 -1
- package/src/compliances/iso27001.ts +2 -1
- package/src/compliances/owasp.ts +2 -1
- package/src/compliances/pci-dss.ts +2 -1
- package/src/compliances/sans-top-25.ts +4 -1
- package/src/error-codes.ts +130 -70
- package/src/index.ts +9 -7
- package/src/registry.ts +2 -0
- package/src/scanner.ts +3 -2
- package/zerothreatai-vulnerability-registry-2.0.0.tgz +0 -0
- 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;
|
package/src/categories/xss.ts
CHANGED
|
@@ -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
|
];
|
package/src/compliances/gdpr.ts
CHANGED
|
@@ -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
|
|
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');
|
package/src/compliances/hipaa.ts
CHANGED
|
@@ -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
|
|
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
|
|
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');
|
package/src/compliances/owasp.ts
CHANGED
|
@@ -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
|
|
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
|
|
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 =
|
|
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');
|
package/src/error-codes.ts
CHANGED
|
@@ -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
|
-
//
|
|
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
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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
|
-
//
|
|
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
|
// ========================================
|