From 8011b0aae14ab3bf555428d81f3e0545d9482507 Mon Sep 17 00:00:00 2001 From: Abhinav Nain Date: Tue, 14 Jan 2025 09:49:58 +0530 Subject: [PATCH] Sorted JSONs + Helper Script --- lib/utils/utils.py | 35 +- mappings/cvss_v3/cvss_v3.json | 1714 ++++---- mappings/cwe/cwe.json | 1367 +++--- .../remediation_advice.json | 2774 ++++++------ sort_all_jsons.py | 4 + vulnerability-rating-taxonomy.json | 3792 ++++++++--------- 6 files changed, 5041 insertions(+), 4645 deletions(-) create mode 100644 sort_all_jsons.py diff --git a/lib/utils/utils.py b/lib/utils/utils.py index f56e3df4..7f0685ef 100644 --- a/lib/utils/utils.py +++ b/lib/utils/utils.py @@ -1,5 +1,4 @@ -import json -import git +import json, git, os VRT_FILENAME = 'vulnerability-rating-taxonomy.json' DEPRECATED_MAPPING_FILENAME = 'deprecated-node-mapping.json' @@ -9,7 +8,9 @@ SCW_FILENAME = 'secure-code-warrior-links.json' SCW_DIR = 'remediation_training' THIRD_PARTY_MAPPING_DIR = 'third-party-mappings' - +CVSS_FILE = "cvss_v3/cvss_v3.json" +CWE_FILE = "cwe/cwe.json" +REMEDIATION_ADVICE_FILE = "remediation_advice/remediation_advice.json" def get_json(filename): with open(filename) as f: @@ -130,3 +131,31 @@ def _all_id_lists(sub_vrt, prefix): print(sub_vrt) raise Exception('unexpected entry found') return _all_id_lists(vrt['content'], []) + +def sort_jsons(): + ''' + Sort all corresponding JSONs for this project for better readability and + maintaining properly formatted JSON files. + ''' + def sort_json(json_data): + def sort_json_blocks(block_data): + sorted_blocks = list(sorted(block_data, key = lambda a: a['id'])) + for idx, block in enumerate(sorted_blocks): + if 'children' in block and block['children']!=[]: + sorted_children = sort_json_blocks(block['children']) + sorted_blocks[idx]['children'] = sorted_children + return sorted_blocks + json_data['content'] = sort_json_blocks(json_data['content']) + return json_data + + for json_path in [ + VRT_FILENAME, + os.path.join(MAPPING_DIR, CVSS_FILE), + os.path.join(MAPPING_DIR, CWE_FILE), + os.path.join(MAPPING_DIR, REMEDIATION_ADVICE_FILE) + ]: + data = sort_json(get_json(json_path)) + print("`{}` JSON data sorted!".format(json_path)) + output = json.dumps(data, indent=2) + open(json_path, "w").write(output) + print("- Writing {} bytes.\n".format(len(output))) diff --git a/mappings/cvss_v3/cvss_v3.json b/mappings/cvss_v3/cvss_v3.json index de48c505..439a609b 100644 --- a/mappings/cvss_v3/cvss_v3.json +++ b/mappings/cvss_v3/cvss_v3.json @@ -4,376 +4,321 @@ }, "content": [ { - "id": "server_security_misconfiguration", + "id": "ai_application_security", "children": [ { - "id": "server_side_request_forgery_ssrf", + "id": "llm_security", "children": [ { - "id": "internal_high_impact", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N" + "id": "excessive_agency_permission_manipulation", + "cvss_v3": "AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H" }, { - "id": "internal_scan_and_or_medium_impact", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N" + "id": "llm_output_handling", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L" }, { - "id": "external_low_impact", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:L" + "id": "prompt_injection", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:L" }, { - "id": "external_dns_query_only", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:L" + "id": "training_data_poisoning", + "cvss_v3": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H" } ] - }, + } + ] + }, + { + "id": "algorithmic_biases", + "children": [ { - "id": "unsafe_cross_origin_resource_sharing", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N" + "id": "aggregation_bias", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N" }, { - "id": "software_package_takeover", - "cvss_v3": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H" - }, + "id": "processing_bias", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N" + } + ] + }, + { + "id": "application_level_denial_of_service_dos", + "children": [ { - "id": "email_verification_bypass", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" + "id": "app_crash", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "missing_subresource_integrity", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "request_smuggling", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" + "id": "critical_impact_and_or_easy_difficulty", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" }, { - "id": "path_traversal", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" + "id": "excessive_resource_consumption", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:H" }, { - "id": "directory_listing_enabled", + "id": "high_impact_and_or_medium_difficulty", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" + } + ] + }, + { + "id": "automotive_security_misconfiguration", + "children": [ + { + "id": "abs", "children": [ { - "id": "sensitive_data_exposure", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" - }, - { - "id": "non_sensitive_data_exposure", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + "id": "unintended_acceleration_brake", + "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" } ] }, { - "id": "same_site_scripting", - "cvss_v3": "AV:L/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N" - }, - { - "id": "ssl_attack_breach_poodle_etc", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N" - }, - { - "id": "using_default_credentials", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L" - }, - { - "id": "misconfigured_dns", + "id": "battery_management_system", "children": [ { - "id": "subdomain_takeover", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" - }, - { - "id": "zone_transfer", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N" + "id": "firmware_dump", + "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H" }, { - "id": "missing_caa_record", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N" + "id": "fraudulent_interface", + "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:L/I:H/A:H" } ] }, { - "id": "mail_server_misconfiguration", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", + "id": "can", "children": [ { - "id": "no_spoofing_protection_on_email_domain", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N" + "id": "injection_basic_safety_message", + "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" }, { - "id": "email_spoofing_to_inbox_due_to_missing_or_misconfigured_dmarc_on_email_domain", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N" + "id": "injection_battery_management_system", + "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + }, + { + "id": "injection_disallowed_messages", + "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + { + "id": "injection_dos", + "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" + }, + { + "id": "injection_headlights", + "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + }, + { + "id": "injection_powertrain", + "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + }, + { + "id": "injection_pyrotechnical_device_deployment_tool", + "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + }, + { + "id": "injection_sensors", + "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + }, + { + "id": "injection_steering_control", + "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + }, + { + "id": "injection_vehicle_anti_theft_systems", + "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" } ] }, { - "id": "dbms_misconfiguration", + "id": "gnss_gps", "children": [ { - "id": "excessively_privileged_user_dba", - "cvss_v3": "AV:N/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:N" + "id": "spoofing", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" } ] }, { - "id": "lack_of_password_confirmation", - "cvss_v3": "AV:P/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", + "id": "immobilizer", "children": [ { - "id": "manage_two_fa", - "cvss_v3": "AV:P/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:L" + "id": "engine_start", + "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" } ] }, { - "id": "no_rate_limiting_on_form", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N", + "id": "infotainment_radio_head_unit", "children": [ { - "id": "login", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" + "id": "code_execution_can_bus_pivot", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H" }, { - "id": "change_password", - "cvss_v3": "AV:P/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L" - } - ] - }, - { - "id": "unsafe_file_upload", - "children": [ + "id": "code_execution_no_can_bus_pivot", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:L" + }, { - "id": "no_antivirus", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:L/A:N" + "id": "default_credentials", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" }, { - "id": "no_size_limit", + "id": "dos_brick", "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" }, { - "id": "file_extension_filter_bypass", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - } - ] - }, - { - "id": "cookie_scoped_to_parent_domain", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "missing_secure_or_httponly_cookie_flag", - "children": [ + "id": "ota_firmware_manipulation", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" + }, { - "id": "session_token", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" + "id": "sensitive_data_leakage_exposure", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H" }, { - "id": "non_session_cookie", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + "id": "source_code_dump", + "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L" + }, + { + "id": "unauthorized_access_to_services", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:L" } ] }, { - "id": "clickjacking", + "id": "rf_hub", "children": [ { - "id": "sensitive_action", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N" + "id": "can_injection_interaction", + "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" }, { - "id": "form_input", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N" + "id": "data_leakage_pull_encryption_mechanism", + "cvss_v3": "AV:A/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L" }, { - "id": "non_sensitive_action", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:N" - } - ] - }, - { - "id": "oauth_misconfiguration", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N", - "children": [ - { - "id": "account_takeover", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H" + "id": "key_fob_cloning", + "cvss_v3": "AV:A/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H" }, { - "id": "account_squatting", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N" - } - ] - }, - { - "id": "captcha", - "children": [ + "id": "relay", + "cvss_v3": "AV:A/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" + }, { - "id": "implementation_vulnerability", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" + "id": "replay", + "cvss_v3": "AV:A/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" }, { - "id": "brute_force", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N" + "id": "roll_jam", + "cvss_v3": "AV:A/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" }, { - "id": "missing", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + "id": "unauthorized_access_turn_on", + "cvss_v3": "AV:A/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:L" } ] }, { - "id": "exposed_admin_portal", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "missing_dnssec", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "fingerprinting_banner_disclosure", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "username_enumeration", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "potentially_unsafe_http_method_enabled", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "insecure_ssl", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "rfd", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:L/A:N" - }, - { - "id": "lack_of_security_headers", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N", - "children": [ - { - "id": "cache_control_for_a_sensitive_page", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" - } - ] - }, - { - "id": "waf_bypass", + "id": "rsu", "children": [ { - "id": "direct_server_access", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" + "id": "sybil_attack", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" } ] - }, - { - "id": "race_condition", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, + } + ] + }, + { + "id": "blockchain_infrastructure_misconfiguration", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "broken_access_control", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", + "children": [ { - "id": "cache_poisoning", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + "id": "privilege_escalation", + "cvss_v3": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N" }, { - "id": "bitsquatting", + "id": "username_enumeration", "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" } ] }, { - "id": "server_side_injection", + "id": "broken_authentication_and_session_management", "children": [ { - "id": "file_inclusion", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N" - }, - { - "id": "parameter_pollution", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "remote_code_execution_rce", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" - }, - { - "id": "ldap_injection", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" - }, - { - "id": "sql_injection", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N" + "id": "authentication_bypass", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L" }, { - "id": "xml_external_entity_injection_xxe", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L" + "id": "cleartext_transmission_of_session_token", + "cvss_v3": "AV:A/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" }, { - "id": "http_response_manipulation", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N" + "id": "concurrent_logins", + "cvss_v3": "AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "content_spoofing", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N", + "id": "failure_to_invalidate_session", "children": [ { - "id": "iframe_injection", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N" + "id": "all_sessions", + "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "impersonation_via_broken_link_hijacking", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N" + "id": "long_timeout", + "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "external_authentication_injection", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N" + "id": "on_email_change", + "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "flash_based_external_authentication_injection", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" + "id": "on_logout", + "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N" }, { - "id": "html_content_injection", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + "id": "on_logout_server_side_only", + "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "email_html_injection", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N" + "id": "on_password_change", + "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N" + }, + { + "id": "on_two_fa_activation_change", + "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "permission_change", + "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N" } ] }, { - "id": "ssti", + "id": "session_fixation", "children": [ { - "id": "basic", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" + "id": "local_attack_vector", + "cvss_v3": "AV:P/AC:H/PR:L/UI:R/S:U/C:H/I:L/A:N" }, { - "id": "custom", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L" + "id": "remote_attack_vector", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N" } ] - } - ] - }, - { - "id": "broken_authentication_and_session_management", - "children": [ - { - "id": "authentication_bypass", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L" }, { "id": "two_fa_bypass", "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, - { - "id": "cleartext_transmission_of_session_token", - "cvss_v3": "AV:A/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" - }, { "id": "weak_login_function", "children": [ @@ -392,411 +337,330 @@ ] }, { - "id": "session_fixation", + "id": "weak_registration_implementation", + "cvss_v3": "AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N" + } + ] + }, + { + "id": "client_side_injection", + "children": [ + { + "id": "binary_planting", "children": [ { - "id": "remote_attack_vector", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N" + "id": "no_privilege_escalation", + "cvss_v3": "AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "local_attack_vector", - "cvss_v3": "AV:P/AC:H/PR:L/UI:R/S:U/C:H/I:L/A:N" + "id": "non_default_folder_privilege_escalation", + "cvss_v3": "AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N" + }, + { + "id": "privilege_escalation", + "cvss_v3": "AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" } ] - }, + } + ] + }, + { + "id": "cross_site_request_forgery_csrf", + "children": [ { - "id": "failure_to_invalidate_session", + "id": "action_specific", "children": [ { - "id": "on_logout", - "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N" - }, - { - "id": "permission_change", - "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N" - }, - { - "id": "on_logout_server_side_only", - "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "on_password_change", - "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N" - }, - { - "id": "all_sessions", - "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "on_email_change", - "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:N" + "id": "authenticated_action", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:N" }, { - "id": "on_two_fa_activation_change", - "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:N" + "id": "logout", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:N" }, { - "id": "long_timeout", - "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:N" + "id": "unauthenticated_action", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N" } ] }, { - "id": "concurrent_logins", - "cvss_v3": "AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:N" + "id": "application_wide", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:L" }, { - "id": "weak_registration_implementation", - "cvss_v3": "AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N" - } - ] - }, - { - "id": "data_biases", - "children": [ - { - "id": "representation_bias", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N" + "id": "csrf_token_not_unique_per_request", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" }, { - "id": "pre_existing_bias", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N" + "id": "flash_based", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" } ] }, { - "id": "algorithmic_biases", + "id": "cross_site_scripting_xss", "children": [ { - "id": "processing_bias", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N" + "id": "cookie_based", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:N/A:N" }, { - "id": "aggregation_bias", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N" - } - ] - }, - { - "id": "societal_biases", - "children": [ - { - "id": "confirmation_bias", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N" + "id": "flash_based", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:N/A:N" }, { - "id": "systemic_bias", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N" - } - ] - }, - { - "id": "misinterpretation_biases", - "children": [ + "id": "ie_only", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N" + }, { - "id": "context_ignorance", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N" - } - ] - }, - { - "id": "developer_biases", - "children": [ + "id": "off_domain", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N" + }, { - "id": "implicit_bias", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:N" - } - ] - }, - { - "id": "sensitive_data_exposure", - "children": [ + "id": "referer", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N" + }, { - "id": "disclosure_of_secrets", + "id": "reflected", "children": [ { - "id": "for_publicly_accessible_asset", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L" + "id": "non_self", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, { - "id": "pii_leakage_exposure", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H" - }, + "id": "self", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + } + ] + }, + { + "id": "stored", + "children": [ { - "id": "for_internal_asset", - "cvss_v3": "AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L" + "id": "non_admin_to_anyone", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N" }, { - "id": "pay_per_use_abuse", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" + "id": "privileged_user_to_no_privilege_elevation", + "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N" }, { - "id": "intentionally_public_sample_or_invalid", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + "id": "privileged_user_to_privilege_elevation", + "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N" }, { - "id": "data_traffic_spam", + "id": "self", "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "non_corporate_user", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + "id": "url_based", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" } ] }, { - "id": "exif_geolocation_data_not_stripped_from_uploaded_images", + "id": "trace_method", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "universal_uxss", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N" + } + ] + }, + { + "id": "cryptographic_weakness", + "children": [ + { + "id": "broken_cryptography", "children": [ { - "id": "automatic_user_enumeration", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N" + "id": "use_of_broken_cryptographic_primitive", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N" }, { - "id": "manual_user_enumeration", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" + "id": "use_of_vulnerable_cryptographic_library", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N" } ] }, { - "id": "visible_detailed_error_page", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", + "id": "incomplete_cleanup_of_keying_material", + "cvss_v3": "AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L" + }, + { + "id": "insecure_implementation", "children": [ { - "id": "detailed_server_configuration", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N" + "id": "improper_following_of_specification", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L" + }, + { + "id": "missing_cryptographic_step", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L" } ] }, { - "id": "disclosure_of_known_public_information", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "token_leakage_via_referer", + "id": "insecure_key_generation", "children": [ { - "id": "trusted_third_party", - "cvss_v3": "AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:N" + "id": "improper_asymmetric_exponent_selection", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L" }, { - "id": "untrusted_third_party", - "cvss_v3": "AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:N" + "id": "improper_asymmetric_prime_selection", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L" }, { - "id": "over_http", - "cvss_v3": "AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N" + "id": "insufficient_key_space", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N" }, { - "id": "password_reset_token", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" - } + "id": "insufficient_key_stretching", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N" + }, + { + "id": "key_exchange_without_entity_authentication", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N" + } ] }, { - "id": "sensitive_token_in_url", - "cvss_v3": "AV:P/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" - }, - { - "id": "non_sensitive_token_in_url", - "cvss_v3": "AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "weak_password_reset_implementation", - "cvss_v3": "AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:N/A:N", + "id": "insufficient_entropy", "children": [ { - "id": "token_leakage_via_host_header_poisoning", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:L" + "id": "initialization_vector_reuse", + "cvss_v3": "AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" + }, + { + "id": "limited_rng_entropy_source", + "cvss_v3": "AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" + }, + { + "id": "predictable_initialization_vector", + "cvss_v3": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" + }, + { + "id": "predictable_prng_seed", + "cvss_v3": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" + }, + { + "id": "prng_seed_reuse", + "cvss_v3": "AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" + }, + { + "id": "small_seed_space_in_prng", + "cvss_v3": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" + }, + { + "id": "use_of_trng_for_nonsecurity_purpose", + "cvss_v3": "AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H" } ] }, { - "id": "mixed_content", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:N" - }, - { - "id": "sensitive_data_hardcoded", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "internal_ip_disclosure", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "xssi", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N" - }, - { - "id": "json_hijacking", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:N" + "id": "insufficient_verification_of_data_authenticity", + "children": [ + { + "id": "cryptographic_signature", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N" + }, + { + "id": "identity_check_value", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N" + } + ] }, { - "id": "via_localstorage_sessionstorage", + "id": "key_reuse", "children": [ { - "id": "sensitive_token", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" + "id": "inter_environment", + "cvss_v3": "AV:A/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H" }, { - "id": "non_sensitive_token", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N" + "id": "intra_environment", + "cvss_v3": "AV:L/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L" + }, + { + "id": "lack_of_perfect_forward_secrecy", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N" } ] - } - ] - }, - { - "id": "cross_site_scripting_xss", - "children": [ + }, { - "id": "stored", + "id": "side_channel_attack", "children": [ { - "id": "non_admin_to_anyone", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N" + "id": "differential_fault_analysis", + "cvss_v3": "AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" }, { - "id": "privileged_user_to_privilege_elevation", - "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N" + "id": "emanations_attack", + "cvss_v3": "AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" }, { - "id": "privileged_user_to_no_privilege_elevation", - "cvss_v3": "AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:N" + "id": "padding_oracle_attack", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" }, { - "id": "url_based", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" + "id": "power_analysis_attack", + "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" }, { - "id": "self", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + "id": "timing_attack", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" } ] }, { - "id": "reflected", + "id": "use_of_expired_cryptographic_key_or_cert", + "cvss_v3": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L" + }, + { + "id": "weak_hash", "children": [ { - "id": "non_self", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" + "id": "lack_of_salt", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N" }, { - "id": "self", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - } - ] - }, - { - "id": "flash_based", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:N/A:N" - }, - { - "id": "cookie_based", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:N/A:N" - }, - { - "id": "ie_only", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N" - }, - { - "id": "referer", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N" - }, - { - "id": "trace_method", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, - { - "id": "universal_uxss", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N" - }, - { - "id": "off_domain", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N" - } - ] - }, - { - "id": "broken_access_control", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", - "children": [ - { - "id": "username_enumeration", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" - }, - { - "id": "privilege_escalation", - "cvss_v3": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N" - } - ] - }, - { - "id": "cross_site_request_forgery_csrf", - "children": [ - { - "id": "application_wide", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:L" - }, - { - "id": "action_specific", - "children": [ - { - "id": "authenticated_action", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:N" - }, - { - "id": "unauthenticated_action", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N" + "id": "predictable_hash_collision", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N" }, { - "id": "logout", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:N" + "id": "use_of_predictable_salt", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N" } ] - }, - { - "id": "csrf_token_not_unique_per_request", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" - }, - { - "id": "flash_based", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" } ] }, { - "id": "application_level_denial_of_service_dos", + "id": "data_biases", "children": [ { - "id": "critical_impact_and_or_easy_difficulty", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H" - }, - { - "id": "high_impact_and_or_medium_difficulty", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" - }, - { - "id": "app_crash", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + "id": "pre_existing_bias", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N" }, { - "id": "excessive_resource_consumption", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:H" + "id": "representation_bias", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N" } ] }, { - "id": "unvalidated_redirects_and_forwards", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", + "id": "decentralized_application_misconfiguration", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "developer_biases", "children": [ { - "id": "open_redirect", - "children": [ - { - "id": "get_based", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N" - } - ] + "id": "implicit_bias", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:N" } ] }, @@ -805,46 +669,8 @@ "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "insufficient_security_configurability", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", - "children": [ - { - "id": "no_password_policy", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N" - }, - { - "id": "weak_password_reset_implementation", - "children": [ - { - "id": "token_is_not_invalidated_after_use", - "cvss_v3": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" - } - ] - }, - { - "id": "weak_two_fa_implementation", - "children": [ - { - "id": "two_fa_secret_cannot_be_rotated", - "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" - }, - { - "id": "two_fa_secret_remains_obtainable_after_two_fa_is_enabled", - "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" - } - ] - } - ] - }, - { - "id": "using_components_with_known_vulnerabilities", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", - "children": [ - { - "id": "rosetta_flash", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" - } - ] + "id": "indicators_of_compromise", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { "id": "insecure_data_storage", @@ -870,10 +696,6 @@ } ] }, - { - "id": "lack_of_binary_hardening", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - }, { "id": "insecure_data_transport", "children": [ @@ -897,65 +719,39 @@ ] }, { - "id": "physical_security_issues", + "id": "insecure_os_firmware", "children": [ { - "id": "bypass_of_physical_access_control", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:L" + "id": "command_injection", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L" }, { - "id": "weakness_in_physical_access_control", + "id": "data_not_encrypted_at_rest", "children": [ { - "id": "cloneable_key", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N" - }, - { - "id": "master_key_identification", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:L" + "id": "non_sensitive", + "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" }, { - "id": "commonly_keyed_system", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N" + "id": "sensitive", + "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" } ] - } - ] - }, - { - "id": "insecure_os_firmware", - "children": [ + }, { - "id": "command_injection", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L" + "id": "failure_to_remove_sensitive_artifacts_from_disk", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" }, { "id": "hardcoded_password", "children": [ - { - "id": "privileged_user", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L" - }, { "id": "non_privileged_user", "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" - } - ] - }, - { - "id": "weakness_in_firmware_updates", - "children": [ - { - "id": "firmware_cannot_be_updated", - "cvss_v3": "AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:L" }, { - "id": "firmware_does_not_validate_update_integrity", - "cvss_v3": "AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H" - }, - { - "id": "firmware_is_not_encrypted", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" + "id": "privileged_user", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L" } ] }, @@ -964,20 +760,16 @@ "cvss_v3": "AV:P/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L" }, { - "id": "poorly_configured_disk_encryption", - "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" - }, - { - "id": "shared_credentials_on_storage", - "cvss_v3": "AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L" + "id": "local_administrator_on_default_environment", + "cvss_v3": "AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H" }, { "id": "over_permissioned_credentials_on_storage", "cvss_v3": "AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L" }, { - "id": "local_administrator_on_default_environment", - "cvss_v3": "AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H" + "id": "poorly_configured_disk_encryption", + "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" }, { "id": "poorly_configured_operating_system_security", @@ -988,450 +780,678 @@ "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" }, { - "id": "failure_to_remove_sensitive_artifacts_from_disk", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" + "id": "shared_credentials_on_storage", + "cvss_v3": "AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L" }, { - "id": "data_not_encrypted_at_rest", + "id": "weakness_in_firmware_updates", "children": [ { - "id": "non_sensitive", - "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" + "id": "firmware_cannot_be_updated", + "cvss_v3": "AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:L" }, { - "id": "sensitive", - "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H" + "id": "firmware_does_not_validate_update_integrity", + "cvss_v3": "AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H" + }, + { + "id": "firmware_is_not_encrypted", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" } ] } ] }, { - "id": "cryptographic_weakness", + "id": "insufficient_security_configurability", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", "children": [ { - "id": "insufficient_entropy", + "id": "no_password_policy", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N" + }, + { + "id": "weak_password_reset_implementation", "children": [ { - "id": "limited_rng_entropy_source", - "cvss_v3": "AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" - }, - { - "id": "use_of_trng_for_nonsecurity_purpose", - "cvss_v3": "AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H" - }, - { - "id": "prng_seed_reuse", - "cvss_v3": "AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" - }, - { - "id": "predictable_prng_seed", - "cvss_v3": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" - }, - { - "id": "small_seed_space_in_prng", - "cvss_v3": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" - }, - { - "id": "initialization_vector_reuse", - "cvss_v3": "AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" - }, - { - "id": "predictable_initialization_vector", + "id": "token_is_not_invalidated_after_use", "cvss_v3": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N" } ] }, { - "id": "insecure_implementation", + "id": "weak_two_fa_implementation", "children": [ { - "id": "missing_cryptographic_step", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L" + "id": "two_fa_secret_cannot_be_rotated", + "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" }, { - "id": "improper_following_of_specification", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L" + "id": "two_fa_secret_remains_obtainable_after_two_fa_is_enabled", + "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" } ] + } + ] + }, + { + "id": "lack_of_binary_hardening", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "misinterpretation_biases", + "children": [ + { + "id": "context_ignorance", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N" + } + ] + }, + { + "id": "mobile_security_misconfiguration", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", + "children": [ + { + "id": "auto_backup_allowed_by_default", + "cvss_v3": "AV:P/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N" }, { - "id": "weak_hash", + "id": "clipboard_enabled", + "cvss_v3": "AV:L/AC:H/PR:N/UI:R/S:C/C:L/I:N/A:N" + } + ] + }, + { + "id": "network_security_misconfiguration", + "children": [ + { + "id": "telnet_enabled", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + } + ] + }, + { + "id": "physical_security_issues", + "children": [ + { + "id": "bypass_of_physical_access_control", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:L" + }, + { + "id": "weakness_in_physical_access_control", "children": [ { - "id": "lack_of_salt", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N" + "id": "cloneable_key", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N" }, { - "id": "use_of_predictable_salt", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N" + "id": "commonly_keyed_system", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N" }, { - "id": "predictable_hash_collision", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N" + "id": "master_key_identification", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:L" } ] - }, + } + ] + }, + { + "id": "privacy_concerns", + "children": [ { - "id": "insufficient_verification_of_data_authenticity", + "id": "unnecessary_data_collection", "children": [ { - "id": "identity_check_value", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N" - }, - { - "id": "cryptographic_signature", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N" + "id": "wifi_ssid_password", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" } ] + } + ] + }, + { + "id": "protocol_specific_misconfiguration", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "sensitive_data_exposure", + "children": [ + { + "id": "disclosure_of_known_public_information", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "insecure_key_generation", + "id": "disclosure_of_secrets", "children": [ { - "id": "improper_asymmetric_prime_selection", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L" + "id": "data_traffic_spam", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "improper_asymmetric_exponent_selection", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L" + "id": "for_internal_asset", + "cvss_v3": "AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L" }, { - "id": "insufficient_key_stretching", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N" + "id": "for_publicly_accessible_asset", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L" }, { - "id": "insufficient_key_space", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N" + "id": "intentionally_public_sample_or_invalid", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "key_exchange_without_entity_authentication", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N" - } - ] - }, - { - "id": "key_reuse", - "children": [ - { - "id": "lack_of_perfect_forward_secrecy", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N" + "id": "non_corporate_user", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "intra_environment", - "cvss_v3": "AV:L/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L" + "id": "pay_per_use_abuse", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L" }, { - "id": "inter_environment", - "cvss_v3": "AV:A/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H" + "id": "pii_leakage_exposure", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H" } ] }, { - "id": "broken_cryptography", + "id": "exif_geolocation_data_not_stripped_from_uploaded_images", "children": [ { - "id": "use_of_broken_cryptographic_primitive", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N" + "id": "automatic_user_enumeration", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N" }, { - "id": "use_of_vulnerable_cryptographic_library", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N" + "id": "manual_user_enumeration", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" } ] }, { - "id": "side_channel_attack", + "id": "internal_ip_disclosure", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "json_hijacking", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:N" + }, + { + "id": "mixed_content", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:N" + }, + { + "id": "non_sensitive_token_in_url", + "cvss_v3": "AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "sensitive_data_hardcoded", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "sensitive_token_in_url", + "cvss_v3": "AV:P/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" + }, + { + "id": "token_leakage_via_referer", "children": [ { - "id": "padding_oracle_attack", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" + "id": "over_http", + "cvss_v3": "AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N" }, { - "id": "timing_attack", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" + "id": "password_reset_token", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" }, { - "id": "power_analysis_attack", - "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" + "id": "trusted_third_party", + "cvss_v3": "AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "emanations_attack", - "cvss_v3": "AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" + "id": "untrusted_third_party", + "cvss_v3": "AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:N" + } + ] + }, + { + "id": "via_localstorage_sessionstorage", + "children": [ + { + "id": "non_sensitive_token", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "differential_fault_analysis", - "cvss_v3": "AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" + "id": "sensitive_token", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" } ] }, { - "id": "use_of_expired_cryptographic_key_or_cert", - "cvss_v3": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L" + "id": "visible_detailed_error_page", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", + "children": [ + { + "id": "detailed_server_configuration", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N" + } + ] }, { - "id": "incomplete_cleanup_of_keying_material", - "cvss_v3": "AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L" - } - ] - }, - { - "id": "privacy_concerns", - "children": [ - { - "id": "unnecessary_data_collection", + "id": "weak_password_reset_implementation", + "cvss_v3": "AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:N/A:N", "children": [ { - "id": "wifi_ssid_password", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" + "id": "token_leakage_via_host_header_poisoning", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:L" } ] + }, + { + "id": "xssi", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N" } ] }, { - "id": "network_security_misconfiguration", + "id": "server_security_misconfiguration", "children": [ { - "id": "telnet_enabled", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" - } - ] - }, - { - "id": "mobile_security_misconfiguration", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", - "children": [ - { - "id": "clipboard_enabled", - "cvss_v3": "AV:L/AC:H/PR:N/UI:R/S:C/C:L/I:N/A:N" + "id": "bitsquatting", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" }, { - "id": "auto_backup_allowed_by_default", - "cvss_v3": "AV:P/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N" - } - ] - }, - { - "id": "client_side_injection", - "children": [ + "id": "cache_poisoning", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, { - "id": "binary_planting", + "id": "captcha", "children": [ { - "id": "privilege_escalation", - "cvss_v3": "AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N" + "id": "brute_force", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "non_default_folder_privilege_escalation", - "cvss_v3": "AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N" + "id": "implementation_vulnerability", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" }, { - "id": "no_privilege_escalation", - "cvss_v3": "AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:N" + "id": "missing", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" } ] - } - ] - }, - { - "id": "automotive_security_misconfiguration", - "children": [ + }, { - "id": "infotainment_radio_head_unit", + "id": "clickjacking", "children": [ { - "id": "sensitive_data_leakage_exposure", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H" + "id": "form_input", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N" }, { - "id": "ota_firmware_manipulation", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" + "id": "non_sensitive_action", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:N" }, { - "id": "code_execution_can_bus_pivot", - "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H" - }, + "id": "sensitive_action", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N" + } + ] + }, + { + "id": "cookie_scoped_to_parent_domain", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "dbms_misconfiguration", + "children": [ { - "id": "code_execution_no_can_bus_pivot", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:L" - }, + "id": "excessively_privileged_user_dba", + "cvss_v3": "AV:N/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:N" + } + ] + }, + { + "id": "directory_listing_enabled", + "children": [ { - "id": "unauthorized_access_to_services", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:L" + "id": "non_sensitive_data_exposure", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "source_code_dump", - "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L" - }, + "id": "sensitive_data_exposure", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" + } + ] + }, + { + "id": "email_verification_bypass", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" + }, + { + "id": "exposed_admin_portal", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "fingerprinting_banner_disclosure", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "insecure_ssl", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "lack_of_password_confirmation", + "cvss_v3": "AV:P/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", + "children": [ { - "id": "dos_brick", - "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" - }, + "id": "manage_two_fa", + "cvss_v3": "AV:P/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:L" + } + ] + }, + { + "id": "lack_of_security_headers", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N", + "children": [ { - "id": "default_credentials", + "id": "cache_control_for_a_sensitive_page", "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" } ] }, { - "id": "rf_hub", + "id": "mail_server_misconfiguration", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", "children": [ { - "id": "key_fob_cloning", - "cvss_v3": "AV:A/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H" - }, - { - "id": "can_injection_interaction", - "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" - }, - { - "id": "data_leakage_pull_encryption_mechanism", - "cvss_v3": "AV:A/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L" + "id": "email_spoofing_to_inbox_due_to_missing_or_misconfigured_dmarc_on_email_domain", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N" }, { - "id": "unauthorized_access_turn_on", - "cvss_v3": "AV:A/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:L" - }, + "id": "no_spoofing_protection_on_email_domain", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N" + } + ] + }, + { + "id": "misconfigured_dns", + "children": [ { - "id": "roll_jam", - "cvss_v3": "AV:A/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" + "id": "missing_caa_record", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "replay", - "cvss_v3": "AV:A/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" + "id": "subdomain_takeover", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, { - "id": "relay", - "cvss_v3": "AV:A/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" + "id": "zone_transfer", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N" } ] }, { - "id": "can", + "id": "missing_dnssec", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "missing_secure_or_httponly_cookie_flag", "children": [ { - "id": "injection_battery_management_system", - "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + "id": "non_session_cookie", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "injection_steering_control", - "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" - }, + "id": "session_token", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" + } + ] + }, + { + "id": "missing_subresource_integrity", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "no_rate_limiting_on_form", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N", + "children": [ { - "id": "injection_pyrotechnical_device_deployment_tool", - "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + "id": "change_password", + "cvss_v3": "AV:P/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L" }, { - "id": "injection_headlights", - "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" - }, + "id": "login", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" + } + ] + }, + { + "id": "oauth_misconfiguration", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N", + "children": [ { - "id": "injection_sensors", - "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + "id": "account_squatting", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N" }, { - "id": "injection_vehicle_anti_theft_systems", - "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" - }, + "id": "account_takeover", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H" + } + ] + }, + { + "id": "path_traversal", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N" + }, + { + "id": "potentially_unsafe_http_method_enabled", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "race_condition", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "request_smuggling", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" + }, + { + "id": "rfd", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:L/A:N" + }, + { + "id": "same_site_scripting", + "cvss_v3": "AV:L/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N" + }, + { + "id": "server_side_request_forgery_ssrf", + "children": [ { - "id": "injection_powertrain", - "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + "id": "external_dns_query_only", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:L" }, { - "id": "injection_basic_safety_message", - "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + "id": "external_low_impact", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:L" }, { - "id": "injection_disallowed_messages", - "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" + "id": "internal_high_impact", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N" }, { - "id": "injection_dos", - "cvss_v3": "AV:P/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H" + "id": "internal_scan_and_or_medium_impact", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N" } ] }, { - "id": "battery_management_system", + "id": "software_package_takeover", + "cvss_v3": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H" + }, + { + "id": "ssl_attack_breach_poodle_etc", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N" + }, + { + "id": "unsafe_cross_origin_resource_sharing", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N" + }, + { + "id": "unsafe_file_upload", "children": [ { - "id": "firmware_dump", - "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H" + "id": "file_extension_filter_bypass", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "fraudulent_interface", - "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:L/I:H/A:H" + "id": "no_antivirus", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:L/A:N" + }, + { + "id": "no_size_limit", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" } ] }, { - "id": "gnss_gps", - "children": [ - { - "id": "spoofing", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" - } - ] + "id": "username_enumeration", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "immobilizer", + "id": "using_default_credentials", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L" + }, + { + "id": "waf_bypass", "children": [ { - "id": "engine_start", - "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + "id": "direct_server_access", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L" } ] - }, + } + ] + }, + { + "id": "server_side_injection", + "children": [ { - "id": "abs", + "id": "content_spoofing", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N", "children": [ { - "id": "unintended_acceleration_brake", - "cvss_v3": "AV:P/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + "id": "email_html_injection", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N" + }, + { + "id": "external_authentication_injection", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N" + }, + { + "id": "flash_based_external_authentication_injection", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" + }, + { + "id": "html_content_injection", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "iframe_injection", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N" + }, + { + "id": "impersonation_via_broken_link_hijacking", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N" } ] }, { - "id": "rsu", + "id": "file_inclusion", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N" + }, + { + "id": "http_response_manipulation", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N" + }, + { + "id": "ldap_injection", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" + }, + { + "id": "parameter_pollution", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" + }, + { + "id": "remote_code_execution_rce", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" + }, + { + "id": "sql_injection", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N" + }, + { + "id": "ssti", "children": [ { - "id": "sybil_attack", - "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H" + "id": "basic", + "cvss_v3": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N" + }, + { + "id": "custom", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L" } ] + }, + { + "id": "xml_external_entity_injection_xxe", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L" } ] }, { - "id": "indicators_of_compromise", + "id": "smart_contract_misconfiguration", "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" }, { - "id": "ai_application_security", + "id": "societal_biases", "children": [ { - "id": "llm_security", + "id": "confirmation_bias", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N" + }, + { + "id": "systemic_bias", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N" + } + ] + }, + { + "id": "unvalidated_redirects_and_forwards", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", + "children": [ + { + "id": "open_redirect", "children": [ { - "id": "prompt_injection", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:L" - }, - { - "id": "llm_output_handling", - "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L" - }, - { - "id": "training_data_poisoning", - "cvss_v3": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H" - }, - { - "id": "excessive_agency_permission_manipulation", - "cvss_v3": "AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H" + "id": "get_based", + "cvss_v3": "AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N" } ] } ] + }, + { + "id": "using_components_with_known_vulnerabilities", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", + "children": [ + { + "id": "rosetta_flash", + "cvss_v3": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:N" + } + ] + }, + { + "id": "zero_knowledge_security_misconfiguration", + "cvss_v3": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N" } ] -} +} \ No newline at end of file diff --git a/mappings/cwe/cwe.json b/mappings/cwe/cwe.json index 36457d1d..cadb68a2 100644 --- a/mappings/cwe/cwe.json +++ b/mappings/cwe/cwe.json @@ -4,815 +4,1158 @@ }, "content": [ { - "id": "server_security_misconfiguration", - "cwe": ["CWE-16"], + "id": "ai_application_security", + "cwe": null + }, + { + "id": "algorithmic_biases", + "cwe": null, "children": [ { - "id": "server_side_request_forgery_ssrf", - "cwe": ["CWE-918", "CWE-441"] + "id": "aggregation_bias", + "cwe": null }, { - "id": "unsafe_cross_origin_resource_sharing", - "cwe": ["CWE-942"] + "id": "processing_bias", + "cwe": null + } + ] + }, + { + "id": "application_level_denial_of_service_dos", + "cwe": [ + "CWE-400" + ] + }, + { + "id": "automotive_security_misconfiguration", + "cwe": null, + "children": [ + { + "id": "abs", + "cwe": null }, { - "id": "request_smuggling", - "cwe": ["CWE-444"] + "id": "battery_management_system", + "cwe": null }, { - "id": "path_traversal", - "cwe": ["CWE-22", "CWE-73"] + "id": "can", + "cwe": null }, { - "id": "directory_listing_enabled", - "cwe": ["CWE-548"] + "id": "gnss_gps", + "cwe": null }, { - "id": "ssl_attack_breach_poodle_etc", - "cwe": ["CWE-310"] + "id": "immobilizer", + "cwe": null }, { - "id": "using_default_credentials", - "cwe": ["CWE-255", "CWE-521"] + "id": "infotainment_radio_head_unit", + "cwe": null }, { - "id": "misconfigured_dns", + "id": "rf_hub", + "cwe": null + }, + { + "id": "rsu", + "cwe": null + } + ] + }, + { + "id": "blockchain_infrastructure_misconfiguration", + "cwe": null + }, + { + "id": "broken_access_control", + "cwe": [ + "CWE-723" + ], + "children": [ + { + "id": "exposed_sensitive_android_intent", + "cwe": [ + "CWE-927" + ] + }, + { + "id": "exposed_sensitive_ios_url_scheme", + "cwe": [ + "CWE-939" + ] + }, + { + "id": "idor", + "cwe": [ + "CWE-932" + ] + }, + { + "id": "privilege_escalation", + "cwe": [ + "CWE-269" + ] + }, + { + "id": "username_enumeration", + "cwe": [ + "CWE-200" + ] + } + ] + }, + { + "id": "broken_authentication_and_session_management", + "cwe": [ + "CWE-930" + ], + "children": [ + { + "id": "authentication_bypass", + "cwe": [ + "CWE-287" + ] + }, + { + "id": "cleartext_transmission_of_session_token", + "cwe": [ + "CWE-319" + ] + }, + { + "id": "concurrent_logins", + "cwe": [ + "CWE-1018" + ] + }, + { + "id": "failure_to_invalidate_session", + "cwe": [ + "CWE-613" + ] + }, + { + "id": "session_fixation", + "cwe": [ + "CWE-384" + ] + }, + { + "id": "two_fa_bypass", + "cwe": [ + "CWE-304" + ] + }, + { + "id": "weak_login_function", + "cwe": [ + "CWE-523" + ] + }, + { + "id": "weak_registration_implementation", "children": [ { - "id": "zone_transfer", - "cwe": ["CWE-669"] + "id": "over_http", + "cwe": [ + "CWE-311" + ] } ] - }, + } + ] + }, + { + "id": "client_side_injection", + "cwe": [ + "CWE-929" + ] + }, + { + "id": "cross_site_request_forgery_csrf", + "cwe": [ + "CWE-352" + ] + }, + { + "id": "cross_site_scripting_xss", + "cwe": [ + "CWE-79" + ] + }, + { + "id": "cryptographic_weakness", + "cwe": [ + "CWE-310", + "CWE-1205" + ], + "children": [ { - "id": "dbms_misconfiguration", + "id": "broken_cryptography", + "cwe": [ + "CWE-327" + ], "children": [ { - "id": "excessively_privileged_user_dba", - "cwe": ["CWE-250"] + "id": "use_of_broken_cryptographic_primitive", + "cwe": [ + "CWE-327" + ] + }, + { + "id": "use_of_vulnerable_cryptographic_library", + "cwe": [ + "CWE-327" + ] } ] }, { - "id": "lack_of_password_confirmation", + "id": "incomplete_cleanup_of_keying_material", + "cwe": [ + "CWE-459" + ] + }, + { + "id": "insecure_implementation", + "cwe": [ + "CWE-573" + ], "children": [ { - "id": "change_password", - "cwe": ["CWE-620"] + "id": "improper_following_of_specification", + "cwe": [ + "CWE-358", + "CWE-573" + ] + }, + { + "id": "missing_cryptographic_step", + "cwe": [ + "CWE-325" + ] } ] }, { - "id": "no_rate_limiting_on_form", - "cwe": ["CWE-799"], + "id": "insecure_key_generation", + "cwe": null, "children": [ { - "id": "login", - "cwe": ["CWE-307"] + "id": "improper_asymmetric_exponent_selection", + "cwe": [ + "CWE-326", + "CWE-1240" + ] + }, + { + "id": "improper_asymmetric_prime_selection", + "cwe": [ + "CWE-326", + "CWE-1240" + ] + }, + { + "id": "insufficient_key_space", + "cwe": [ + "CWE-326", + "CWE-331", + "CWE-1240" + ] + }, + { + "id": "insufficient_key_stretching", + "cwe": [ + "CWE-326", + "CWE-1240" + ] + }, + { + "id": "key_exchange_without_entity_authentication", + "cwe": [ + "CWE-322" + ] } ] }, { - "id": "unsafe_file_upload", + "id": "insufficient_entropy", + "cwe": [ + "CWE-330", + "CWE-331" + ], "children": [ { - "id": "file_extension_filter_bypass", - "cwe": ["CWE-434", "CWE-646"] + "id": "initialization_vector_reuse", + "cwe": [ + "CWE-1204" + ] + }, + { + "id": "limited_rng_entropy_source", + "cwe": [ + "CWE-338", + "CWE-332" + ] + }, + { + "id": "predictable_initialization_vector", + "cwe": [ + "CWE-340" + ] + }, + { + "id": "predictable_prng_seed", + "cwe": [ + "CWE-337" + ] + }, + { + "id": "prng_seed_reuse", + "cwe": [ + "CWE-336" + ] + }, + { + "id": "small_seed_space_in_prng", + "cwe": [ + "CWE-339", + "CWE-334" + ] + }, + { + "id": "use_of_trng_for_nonsecurity_purpose", + "cwe": [ + "CWE-333" + ] } ] }, { - "id": "missing_secure_or_httponly_cookie_flag", - "cwe": ["CWE-614", "CWE-1004"] - }, - { - "id": "clickjacking", - "cwe": ["CWE-451"] - }, - { - "id": "oauth_misconfiguration", - "cwe": ["CWE-303"], + "id": "insufficient_verification_of_data_authenticity", + "cwe": [ + "CWE-345" + ], "children": [ { - "id": "missing_state_parameter", - "cwe": ["CWE-352"] + "id": "cryptographic_signature", + "cwe": [ + "CWE-347" + ] }, { - "id": "insecure_redirect_uri", - "cwe": ["CWE-601"] + "id": "identity_check_value", + "cwe": [ + "CWE-353", + "CWE-354", + "CWE-924" + ] } ] }, { - "id": "captcha", - "cwe": ["CWE-804"] - }, - { - "id": "username_enumeration", - "cwe": ["CWE-204"] + "id": "key_reuse", + "cwe": [ + "CWE-323" + ], + "children": [ + { + "id": "inter_environment", + "cwe": [ + "CWE-323" + ] + }, + { + "id": "intra_environment", + "cwe": [ + "CWE-323" + ] + }, + { + "id": "lack_of_perfect_forward_secrecy", + "cwe": [ + "CWE-323" + ] + } + ] }, { - "id": "insecure_ssl", + "id": "side_channel_attack", + "cwe": [ + "CWE-203", + "CWE-1300" + ], "children": [ { - "id": "insecure_cipher_suite", - "cwe": ["CWE-326"] + "id": "differential_fault_analysis", + "cwe": [ + "CWE-204", + "CWE-205" + ] + }, + { + "id": "emanations_attack", + "cwe": [ + "CWE-1300" + ] + }, + { + "id": "padding_oracle_attack", + "cwe": [ + "CWE-780" + ] + }, + { + "id": "power_analysis_attack", + "cwe": [ + "CWE-1300" + ] + }, + { + "id": "timing_attack", + "cwe": [ + "CWE-208" + ] } ] }, { - "id": "lack_of_security_headers", + "id": "use_of_expired_cryptographic_key_or_cert", + "cwe": [ + "CWE-295", + "CWE-298", + "CWE-299", + "CWE-324" + ] + }, + { + "id": "weak_hash", + "cwe": [ + "CWE-328" + ], "children": [ { - "id": "cache_control_for_a_non_sensitive_page", - "cwe": ["CWE-525"] + "id": "lack_of_salt", + "cwe": [ + "CWE-759", + "CWE-916" + ] }, { - "id": "cache_control_for_a_sensitive_page", - "cwe": ["CWE-525"] + "id": "predictable_hash_collision", + "cwe": [ + "CWE-328" + ] + }, + { + "id": "use_of_predictable_salt", + "cwe": [ + "CWE-760" + ] } ] - }, + } + ] + }, + { + "id": "data_biases", + "cwe": null, + "children": [ { - "id": "race_condition", - "cwe": ["CWE-362", "CWE-366", "CWE-368", "CWE-421"] + "id": "pre_existing_bias", + "cwe": null }, { - "id": "cache_poisoning", - "cwe": ["CWE-444"] + "id": "representation_bias", + "cwe": null } ] }, { - "id": "server_side_injection", - "cwe": ["CWE-929"], + "id": "decentralized_application_misconfiguration", + "cwe": null + }, + { + "id": "developer_biases", + "cwe": null, + "children": [ + { + "id": "implicit_bias", + "cwe": null + } + ] + }, + { + "id": "external_behavior", + "cwe": null + }, + { + "id": "indicators_of_compromise", + "cwe": null + }, + { + "id": "insecure_data_storage", + "cwe": [ + "CWE-729", + "CWE-922" + ], "children": [ { - "id": "ldap_injection", - "cwe": ["CWE-90"] - }, - { - "id": "file_inclusion", - "cwe": ["CWE-73", "CWE-714"] - }, - { - "id": "remote_code_execution_rce", - "cwe": ["CWE-77", "CWE-78", "CWE-94", "CWE-95"] - }, - { - "id": "sql_injection", - "cwe": ["CWE-89"] - }, - { - "id": "xml_external_entity_injection_xxe", - "cwe": ["CWE-611"] + "id": "non_sensitive_application_data_stored_unencrypted", + "cwe": [ + "CWE-312" + ] }, { - "id": "http_response_manipulation", - "children": [ - { - "id": "response_splitting_crlf", - "cwe": ["CWE-113"] - } + "id": "sensitive_application_data_stored_unencrypted", + "cwe": [ + "CWE-312" ] }, { - "id": "content_spoofing", - "cwe": ["CWE-451"], + "id": "server_side_credentials_storage", + "cwe": [ + "CWE-522" + ], "children": [ { - "id": "homograph_idn_based", - "cwe": ["CWE-1007"] + "id": "plaintext", + "cwe": [ + "CWE-256" + ] } ] - }, - { - "id": "ssti", - "cwe": ["CWE-94"] } ] }, { - "id": "broken_authentication_and_session_management", - "cwe": ["CWE-930"], + "id": "insecure_data_transport", + "cwe": [ + "CWE-311", + "CWE-319" + ], "children": [ { - "id": "authentication_bypass", - "cwe": ["CWE-287"] - }, - { - "id": "two_fa_bypass", - "cwe": ["CWE-304"] - }, - { - "id": "cleartext_transmission_of_session_token", - "cwe": ["CWE-319"] - }, - { - "id": "weak_login_function", - "cwe": ["CWE-523"] - }, - { - "id": "session_fixation", - "cwe": ["CWE-384"] - }, - { - "id": "failure_to_invalidate_session", - "cwe": ["CWE-613"] - }, - { - "id": "concurrent_logins", - "cwe": ["CWE-1018"] + "id": "cleartext_transmission_of_sensitive_data", + "cwe": [ + "CWE-319" + ] }, { - "id": "weak_registration_implementation", + "id": "executable_download", "children": [ { - "id": "over_http", - "cwe": ["CWE-311"] + "id": "no_secure_integrity_check", + "cwe": [ + "CWE-353", + "CWE-354", + "CWE-494" + ] } ] } ] }, { - "id": "sensitive_data_exposure", - "cwe": ["CWE-934"], + "id": "insecure_os_firmware", "children": [ { - "id": "disclosure_of_secrets", + "id": "command_injection", + "cwe": [ + "CWE-77" + ] + }, + { + "id": "data_not_encrypted_at_rest", "children": [ { - "id": "pii_leakage_exposure", - "cwe": ["CWE-200"] + "id": "non_sensitive", + "cwe": [ + "CWE-311" + ] + }, + { + "id": "sensitive", + "cwe": [ + "CWE-311" + ] } ] }, { - "id": "exif_geolocation_data_not_stripped_from_uploaded_images", - "cwe": ["CWE-200"] + "id": "failure_to_remove_sensitive_artifacts_from_disk", + "cwe": [ + "CWE-459" + ] }, { - "id": "visible_detailed_error_page", - "cwe": ["CWE-209", "CWE-215"] + "id": "hardcoded_password", + "cwe": [ + "CWE-259" + ] }, { - "id": "disclosure_of_known_public_information", - "cwe": ["CWE-200"] + "id": "kiosk_escape_or_breakout", + "cwe": [ + "CWE-284" + ] }, { - "id": "token_leakage_via_referer", - "cwe": ["CWE-200"] + "id": "local_administrator_on_default_environment", + "cwe": [ + "CWE-276" + ] }, { - "id": "sensitive_token_in_url", - "cwe": ["CWE-200"] + "id": "over_permissioned_credentials_on_storage", + "cwe": [ + "CWE-250" + ] }, { - "id": "non_sensitive_token_in_url", - "cwe": ["CWE-200"] + "id": "poorly_configured_disk_encryption", + "cwe": [ + "CWE-326" + ] }, { - "id": "weak_password_reset_implementation", - "cwe": ["CWE-640"] + "id": "poorly_configured_operating_system_security", + "cwe": [ + "CWE-16" + ] }, { - "id": "via_localstorage_sessionstorage", - "cwe": ["CWE-922"] + "id": "recovery_of_disk_contains_sensitive_material", + "cwe": [ + "CWE-522" + ] + }, + { + "id": "shared_credentials_on_storage", + "cwe": [ + "CWE-798" + ] + }, + { + "id": "weakness_in_firmware_updates", + "children": [ + { + "id": "firmware_cannot_be_updated", + "cwe": [ + "CWE-434" + ] + }, + { + "id": "firmware_does_not_validate_update_integrity", + "cwe": [ + "CWE-434" + ] + }, + { + "id": "firmware_is_not_encrypted", + "cwe": [ + "CWE-434" + ] + } + ] } ] }, { - "id": "cross_site_scripting_xss", - "cwe": ["CWE-79"] - }, - { - "id": "broken_access_control", - "cwe": ["CWE-723"], + "id": "insufficient_security_configurability", + "cwe": [ + "CWE-16" + ], "children": [ { - "id": "idor", - "cwe": ["CWE-932"] + "id": "no_password_policy", + "cwe": [ + "CWE-521" + ] }, { - "id": "username_enumeration", - "cwe": ["CWE-200"] + "id": "password_policy_bypass", + "cwe": [ + "CWE-521" + ] }, { - "id": "exposed_sensitive_android_intent", - "cwe": ["CWE-927"] + "id": "weak_password_policy", + "cwe": [ + "CWE-521" + ] }, { - "id": "privilege_escalation", - "cwe": ["CWE-269"] - }, - { - "id": "exposed_sensitive_ios_url_scheme", - "cwe": ["CWE-939"] + "id": "weak_password_reset_implementation", + "cwe": [ + "CWE-640" + ] } ] }, { - "id": "cross_site_request_forgery_csrf", - "cwe": ["CWE-352"] - }, - { - "id": "application_level_denial_of_service_dos", - "cwe": ["CWE-400"] + "id": "lack_of_binary_hardening", + "cwe": [ + "CWE-693" + ] }, { - "id": "unvalidated_redirects_and_forwards", - "cwe": ["CWE-601"], + "id": "misinterpretation_biases", + "cwe": null, "children": [ { - "id": "open_redirect", - "cwe": ["CWE-601"] - }, - { - "id": "tabnabbing", - "cwe": ["CWE-1022"] + "id": "context_ignorance", + "cwe": null } ] }, { - "id": "external_behavior", - "cwe": null - }, - { - "id": "insufficient_security_configurability", - "cwe": ["CWE-16"], - "children": [ - { - "id": "weak_password_policy", - "cwe": ["CWE-521"] - }, - { - "id": "no_password_policy", - "cwe": ["CWE-521"] - }, - { - "id": "password_policy_bypass", - "cwe": ["CWE-521"] - }, - { - "id": "weak_password_reset_implementation", - "cwe": ["CWE-640"] - } + "id": "mobile_security_misconfiguration", + "cwe": [ + "CWE-919" ] }, { - "id": "using_components_with_known_vulnerabilities", - "cwe": ["CWE-937"] + "id": "network_security_misconfiguration", + "cwe": [ + "CWE-16" + ] }, { - "id": "insecure_data_storage", - "cwe": ["CWE-729", "CWE-922"], + "id": "physical_security_issues", "children": [ { - "id": "sensitive_application_data_stored_unencrypted", - "cwe": ["CWE-312"] + "id": "bypass_of_physical_access_control", + "cwe": [ + "CWE-1300" + ] }, { - "id": "server_side_credentials_storage", - "cwe": ["CWE-522"], + "id": "weakness_in_physical_access_control", "children": [ { - "id": "plaintext", - "cwe": ["CWE-256"] + "id": "cloneable_key", + "cwe": [ + "CWE-1300" + ] + }, + { + "id": "commonly_keyed_system", + "cwe": [ + "CWE-284" + ] + }, + { + "id": "master_key_identification", + "cwe": [ + "CWE-284" + ] } ] - }, - { - "id": "non_sensitive_application_data_stored_unencrypted", - "cwe": ["CWE-312"] } ] }, { - "id": "ai_application_security", - "cwe": null + "id": "privacy_concerns", + "cwe": [ + "CWE-359" + ] }, { - "id": "lack_of_binary_hardening", - "cwe": ["CWE-693"] + "id": "protocol_specific_misconfiguration", + "cwe": null }, { - "id": "insecure_data_transport", - "cwe": ["CWE-311", "CWE-319"], + "id": "sensitive_data_exposure", + "cwe": [ + "CWE-934" + ], "children": [ { - "id": "cleartext_transmission_of_sensitive_data", - "cwe": ["CWE-319"] + "id": "disclosure_of_known_public_information", + "cwe": [ + "CWE-200" + ] }, { - "id": "executable_download", + "id": "disclosure_of_secrets", "children": [ { - "id": "no_secure_integrity_check", - "cwe": ["CWE-353", "CWE-354", "CWE-494"] + "id": "pii_leakage_exposure", + "cwe": [ + "CWE-200" + ] } ] - } - ] - }, - { - "id": "physical_security_issues", - "children": [ - { - "id": "bypass_of_physical_access_control", - "cwe": ["CWE-1300"] - }, - { - "id": "weakness_in_physical_access_control", - "children": [ - { - "id": "cloneable_key", - "cwe": ["CWE-1300"] }, { - "id": "master_key_identification", - "cwe": ["CWE-284"] - }, - { - "id": "commonly_keyed_system", - "cwe": ["CWE-284"] - } + "id": "exif_geolocation_data_not_stripped_from_uploaded_images", + "cwe": [ + "CWE-200" ] - } - ] - }, - { - "id": "insecure_os_firmware", - "children": [ - { - "id": "command_injection", - "cwe": ["CWE-77"] - }, - { - "id": "hardcoded_password", - "cwe": ["CWE-259"] - }, - { - "id": "weakness_in_firmware_updates", - "children": [ - { - "id": "firmware_cannot_be_updated", - "cwe": ["CWE-434"] - }, - { - "id": "firmware_does_not_validate_update_integrity", - "cwe": ["CWE-434"] }, { - "id": "firmware_is_not_encrypted", - "cwe": ["CWE-434"] - } - ] + "id": "non_sensitive_token_in_url", + "cwe": [ + "CWE-200" + ] }, { - "id": "kiosk_escape_or_breakout", - "cwe": ["CWE-284"] + "id": "sensitive_token_in_url", + "cwe": [ + "CWE-200" + ] }, { - "id": "poorly_configured_disk_encryption", - "cwe": ["CWE-326"] - }, - { - "id": "shared_credentials_on_storage", - "cwe": ["CWE-798"] - }, - { - "id": "over_permissioned_credentials_on_storage", - "cwe": ["CWE-250"] - }, - { - "id": "local_administrator_on_default_environment", - "cwe": ["CWE-276"] - }, - { - "id": "poorly_configured_operating_system_security", - "cwe": ["CWE-16"] - }, - { - "id": "recovery_of_disk_contains_sensitive_material", - "cwe": ["CWE-522"] - }, - { - "id": "failure_to_remove_sensitive_artifacts_from_disk", - "cwe": ["CWE-459"] + "id": "token_leakage_via_referer", + "cwe": [ + "CWE-200" + ] }, { - "id": "data_not_encrypted_at_rest", - "children": [ + "id": "via_localstorage_sessionstorage", + "cwe": [ + "CWE-922" + ] + }, { - "id": "sensitive", - "cwe": ["CWE-311"] + "id": "visible_detailed_error_page", + "cwe": [ + "CWE-209", + "CWE-215" + ] }, { - "id": "non_sensitive", - "cwe": ["CWE-311"] - } - ] - } + "id": "weak_password_reset_implementation", + "cwe": [ + "CWE-640" + ] + } ] }, { - "id": "cryptographic_weakness", - "cwe": ["CWE-310", "CWE-1205"], + "id": "server_security_misconfiguration", + "cwe": [ + "CWE-16" + ], "children": [ { - "id": "insufficient_entropy", - "cwe": ["CWE-330", "CWE-331"], + "id": "cache_poisoning", + "cwe": [ + "CWE-444" + ] + }, + { + "id": "captcha", + "cwe": [ + "CWE-804" + ] + }, + { + "id": "clickjacking", + "cwe": [ + "CWE-451" + ] + }, + { + "id": "dbms_misconfiguration", "children": [ { - "id": "limited_rng_entropy_source", - "cwe": ["CWE-338", "CWE-332"] - }, - { - "id": "use_of_trng_for_nonsecurity_purpose", - "cwe": ["CWE-333"] - }, - { - "id": "prng_seed_reuse", - "cwe": ["CWE-336"] - }, - { - "id": "predictable_prng_seed", - "cwe": ["CWE-337"] - }, - { - "id": "small_seed_space_in_prng", - "cwe": ["CWE-339", "CWE-334"] - }, - { - "id": "initialization_vector_reuse", - "cwe": ["CWE-1204"] - }, - { - "id": "predictable_initialization_vector", - "cwe": ["CWE-340"] + "id": "excessively_privileged_user_dba", + "cwe": [ + "CWE-250" + ] } ] }, { - "id": "insecure_implementation", - "cwe": ["CWE-573"], + "id": "directory_listing_enabled", + "cwe": [ + "CWE-548" + ] + }, + { + "id": "insecure_ssl", "children": [ { - "id": "missing_cryptographic_step", - "cwe": ["CWE-325"] - }, - { - "id": "improper_following_of_specification", - "cwe": ["CWE-358", "CWE-573"] + "id": "insecure_cipher_suite", + "cwe": [ + "CWE-326" + ] } ] }, { - "id": "weak_hash", - "cwe": ["CWE-328"], + "id": "lack_of_password_confirmation", "children": [ { - "id": "lack_of_salt", - "cwe": ["CWE-759", "CWE-916"] - }, - { - "id": "use_of_predictable_salt", - "cwe": ["CWE-760"] - }, - { - "id": "predictable_hash_collision", - "cwe": ["CWE-328"] + "id": "change_password", + "cwe": [ + "CWE-620" + ] } ] }, { - "id": "insufficient_verification_of_data_authenticity", - "cwe": ["CWE-345"], + "id": "lack_of_security_headers", "children": [ { - "id": "identity_check_value", - "cwe": ["CWE-353", "CWE-354", "CWE-924"] + "id": "cache_control_for_a_non_sensitive_page", + "cwe": [ + "CWE-525" + ] }, { - "id": "cryptographic_signature", - "cwe": ["CWE-347"] + "id": "cache_control_for_a_sensitive_page", + "cwe": [ + "CWE-525" + ] } ] }, { - "id": "insecure_key_generation", - "cwe": null, + "id": "misconfigured_dns", "children": [ { - "id": "improper_asymmetric_prime_selection", - "cwe": ["CWE-326", "CWE-1240"] - }, - { - "id": "improper_asymmetric_exponent_selection", - "cwe": ["CWE-326", "CWE-1240"] - }, - { - "id": "insufficient_key_stretching", - "cwe": ["CWE-326", "CWE-1240"] - }, - { - "id": "insufficient_key_space", - "cwe": ["CWE-326", "CWE-331", "CWE-1240"] - }, - { - "id": "key_exchange_without_entity_authentication", - "cwe": ["CWE-322"] + "id": "zone_transfer", + "cwe": [ + "CWE-669" + ] } ] }, { - "id": "key_reuse", - "cwe": ["CWE-323"], + "id": "missing_secure_or_httponly_cookie_flag", + "cwe": [ + "CWE-614", + "CWE-1004" + ] + }, + { + "id": "no_rate_limiting_on_form", + "cwe": [ + "CWE-799" + ], "children": [ { - "id": "lack_of_perfect_forward_secrecy", - "cwe": ["CWE-323"] - }, - { - "id": "intra_environment", - "cwe": ["CWE-323"] - }, - { - "id": "inter_environment", - "cwe": ["CWE-323"] + "id": "login", + "cwe": [ + "CWE-307" + ] } ] }, { - "id": "broken_cryptography", - "cwe": ["CWE-327"], + "id": "oauth_misconfiguration", + "cwe": [ + "CWE-303" + ], "children": [ { - "id": "use_of_broken_cryptographic_primitive", - "cwe": ["CWE-327"] + "id": "insecure_redirect_uri", + "cwe": [ + "CWE-601" + ] }, { - "id": "use_of_vulnerable_cryptographic_library", - "cwe": ["CWE-327"] + "id": "missing_state_parameter", + "cwe": [ + "CWE-352" + ] } ] }, { - "id": "side_channel_attack", - "cwe": ["CWE-203", "CWE-1300"], + "id": "path_traversal", + "cwe": [ + "CWE-22", + "CWE-73" + ] + }, + { + "id": "race_condition", + "cwe": [ + "CWE-362", + "CWE-366", + "CWE-368", + "CWE-421" + ] + }, + { + "id": "request_smuggling", + "cwe": [ + "CWE-444" + ] + }, + { + "id": "server_side_request_forgery_ssrf", + "cwe": [ + "CWE-918", + "CWE-441" + ] + }, + { + "id": "ssl_attack_breach_poodle_etc", + "cwe": [ + "CWE-310" + ] + }, + { + "id": "unsafe_cross_origin_resource_sharing", + "cwe": [ + "CWE-942" + ] + }, + { + "id": "unsafe_file_upload", "children": [ { - "id": "padding_oracle_attack", - "cwe": ["CWE-780"] - }, - { - "id": "timing_attack", - "cwe": ["CWE-208"] - }, - { - "id": "power_analysis_attack", - "cwe": ["CWE-1300"] - }, - { - "id": "emanations_attack", - "cwe": ["CWE-1300"] - }, - { - "id": "differential_fault_analysis", - "cwe": ["CWE-204", "CWE-205"] + "id": "file_extension_filter_bypass", + "cwe": [ + "CWE-434", + "CWE-646" + ] } ] }, { - "id": "use_of_expired_cryptographic_key_or_cert", - "cwe": ["CWE-295", "CWE-298", "CWE-299", "CWE-324"] + "id": "username_enumeration", + "cwe": [ + "CWE-204" + ] }, { - "id": "incomplete_cleanup_of_keying_material", - "cwe": ["CWE-459"] + "id": "using_default_credentials", + "cwe": [ + "CWE-255", + "CWE-521" + ] } ] }, { - "id": "privacy_concerns", - "cwe": ["CWE-359"] - }, - { - "id": "network_security_misconfiguration", - "cwe": ["CWE-16"] - }, - { - "id": "mobile_security_misconfiguration", - "cwe": ["CWE-919"] - }, - { - "id": "client_side_injection", - "cwe": ["CWE-929"] - }, - { - "id": "automotive_security_misconfiguration", - "cwe": null, + "id": "server_side_injection", + "cwe": [ + "CWE-929" + ], "children": [ { - "id": "infotainment_radio_head_unit", - "cwe": null + "id": "content_spoofing", + "cwe": [ + "CWE-451" + ], + "children": [ + { + "id": "homograph_idn_based", + "cwe": [ + "CWE-1007" + ] + } + ] }, { - "id": "rf_hub", - "cwe": null + "id": "file_inclusion", + "cwe": [ + "CWE-73", + "CWE-714" + ] }, { - "id": "can", - "cwe": null + "id": "http_response_manipulation", + "children": [ + { + "id": "response_splitting_crlf", + "cwe": [ + "CWE-113" + ] + } + ] }, { - "id": "battery_management_system", - "cwe": null + "id": "ldap_injection", + "cwe": [ + "CWE-90" + ] }, { - "id": "gnss_gps", - "cwe": null + "id": "remote_code_execution_rce", + "cwe": [ + "CWE-77", + "CWE-78", + "CWE-94", + "CWE-95" + ] }, { - "id": "immobilizer", - "cwe": null + "id": "sql_injection", + "cwe": [ + "CWE-89" + ] }, { - "id": "abs", - "cwe": null + "id": "ssti", + "cwe": [ + "CWE-94" + ] }, { - "id": "rsu", - "cwe": null + "id": "xml_external_entity_injection_xxe", + "cwe": [ + "CWE-611" + ] } ] }, { - "id": "indicators_of_compromise", + "id": "smart_contract_misconfiguration", "cwe": null }, { - "id": "data_biases", - "cwe": null, - "children": [ - { - "id": "representation_bias", - "cwe": null - }, - { - "id": "pre_existing_bias", - "cwe": null - } - ] - }, - { - "id": "algorithmic_biases", + "id": "societal_biases", "cwe": null, "children": [ { - "id": "processing_bias", + "id": "confirmation_bias", "cwe": null }, { - "id": "aggregation_bias", + "id": "systemic_bias", "cwe": null } ] }, { - "id": "societal_biases", - "cwe": null, + "id": "unvalidated_redirects_and_forwards", + "cwe": [ + "CWE-601" + ], "children": [ { - "id": "confirmation_bias", - "cwe": null + "id": "open_redirect", + "cwe": [ + "CWE-601" + ] }, { - "id": "systemic_bias", - "cwe": null + "id": "tabnabbing", + "cwe": [ + "CWE-1022" + ] } ] }, { - "id": "misinterpretation_biases", - "cwe": null, - "children": [ - { - "id": "context_ignorance", - "cwe": null - } + "id": "using_components_with_known_vulnerabilities", + "cwe": [ + "CWE-937" ] }, { - "id": "developer_biases", - "cwe": null, - "children": [ - { - "id": "implicit_bias", - "cwe": null - } - ] + "id": "zero_knowledge_security_misconfiguration", + "cwe": null } ] -} +} \ No newline at end of file diff --git a/mappings/remediation_advice/remediation_advice.json b/mappings/remediation_advice/remediation_advice.json index 2af119fb..bfa8b1f3 100644 --- a/mappings/remediation_advice/remediation_advice.json +++ b/mappings/remediation_advice/remediation_advice.json @@ -8,935 +8,511 @@ }, "content": [ { - "id": "server_security_misconfiguration", - "references": [ - "https://www.owasp.org/index.php/Top_10-2017_A6-Security_Misconfiguration", - "http://projects.webappsec.org/w/page/13246959/Server%20Misconfiguration" - ], + "id": "ai_application_security", "children": [ { - "id": "server_side_request_forgery_ssrf", - "remediation_advice": "1. **Error handling and messages:** Display generic error messages to the client in case something goes wrong. If content type validation fails, display generic errors to the client like _“Invalid Data retrieved”_. Also ensure that the message is the same when the request fails on the backend and if invalid data is received. This will prevent the application from being abused as distinct error messages will be absent for closed and open ports. Under no circumstance should the raw response received from the remote server be displayed to the client.\n2. **Response Handling:** Validating responses received from remote resources on the server side is the most basic mitigation that can be readily implemented. If a web application expects specific content type on the server, programmatically ensure that the data received satisfies checks imposed on the server before displaying or processing the data for the client.\n3. **Disable unwanted protocols:** Allow only `http` and `https` to make requests to remote servers. Whitelisting these protocols will prevent the web application from making requests over other protocols like `file:///`, `gopher://`, `ftp://` and other URI schemes.\n4. **Blacklist IP addresses:** Internal IP addresses, localhost specifications and internal hostnames can all be blacklisted to prevent the web application from being abused to fetch data/attack these devices. Implementing this will protect servers from one time attack vectors. For example, even if the first fix (above) is implemented, the data is still being sent to the remote service. If an attack that does not need to see responses is executed (like a buffer overflow exploit) then this fix can actually prevent data from ever reaching the vulnerable device. Response handling is then not required at all as a request was never made.", - "references": [ - "https://www.owasp.org/index.php/Top_10_2013-A7-Missing_Function_Level_Access_Control", - "http://projects.webappsec.org/w/page/13246913/Abuse%20of%20Functionality", - "http://resources.infosecinstitute.com/the-ssrf-vulnerability/", - "https://www.bishopfox.com/blog/2015/04/vulnerable-by-design-understanding-server-side-request-forgery/", - "http://niiconsulting.com/checkmate/2015/04/server-side-request-forgery-ssrf/" - ] - }, - { - "id": "unsafe_cross_origin_resource_sharing", - "remediation_advice": "1. **Origin & Access-Control-Allow-Origin:** The Origin header is always sent by the browser in a `CORS` request and indicates the origin of the request. The Origin header can not be changed from JavaScript however relying on this header for Access Control checks is not a good idea as it may be spoofed outside the browser, so you still need to check that application-level protocols are used to protect sensitive data.\n2. **Access-Control-Allow-Origin** is a response header used by a server to indicate which domains are allowed to read the response. Based on the `CORS W3 Specification` it is up to the client to determine and enforce the restriction of whether the client has access to the response data based on this header.\n3. Make sure that there are no insecure configurations using a wildcard as value which looks like `Access-Control-Allow-Origin: *` as this header means all domains are allowed access to the resource. \n4. Make sure that when the server returns back the Origin header that there are additional checks so that access of sensitive data is not allowed.\n5. The `Access-Control-Request-Method` header is used when a browser performs a preflight `OPTIONS` request and let the client indicate the request method of the final request. On the other hand, the `Access-Control-Allow-Method` is a response header used by the server to describe the methods the clients are allowed to use.\n6. **Access-Control-Request-Headers & Access-Control-Allow-Headers:** These two headers are used between the browser and the server to determine which headers can be used to perform a cross-origin request.\n7. **Access-Control-Allow-Credentials:** This header as part of a preflight request indicates that the final request can include user credentials.\n8. **Input validation:** XMLHttpRequest L2 (or XHR L2) introduces the possibility of creating a cross-domain request using the XHR API for backwards compatibility. This can introduce security vulnerabilities that in XHR L1 were not present. Interesting points of the code to exploit would be URLs that are passed to XMLHttpRequest without validation, specially if absolute URLS are allowed because that could lead to code injection. Likewise, other part of the application that can be exploited is if the response data is not escaped and we can control it by providing user-supplied input.\n9. **Other headers:** There are other headers involved like Access-Control-Max-Age that determines the time a preflight request can be cached in the browser, or Access-Control-Expose-Headers that indicates which headers are safe to expose to the API of a CORS API specification, both are response headers specified in the CORS W3C document.", - "references": [ - "https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/HTML5_Security_Cheat_Sheet.md#cross-origin-resource-sharing", - "https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS" - ] - }, - { - "id": "email_verification_bypass", - "remediation_advice": "1. **Implement Robust Token Validation:** Ensure that any token used for email verification is securely generated and validated. Tokens should be long, random, and use secure hashing algorithms to prevent guessing attacks.\n2. **Secure Transmission:** Use HTTPS to protect the transmission of tokens over the network. Ensure that the tokens are not leaked via URLs in the `Referer` header by instructing users to avoid clicking on links from untrusted sources or by implementing measures to strip sensitive information from URLs.\n3. **Expire Tokens Quickly:** Set a short expiration time for verification tokens to limit the window of opportunity for an attacker. Once a token is used or expires, it should be invalidated immediately to prevent reuse.", - "references": [ - "https://owasp.org/www-community/attacks/Email_Injection", - "https://portswigger.net/web-security/email-security" - ] - }, - { - "id": "decentralized_application_misconfiguration", - "remediation_advice": "1. Ensure that there are checks on price and liquidity changes to prevent sudden manipulation caused by flash loans.\n2. Implement replay auditing of smart contracts to detect vulnerabilities exploitable by flash loans.\n3. Ensure accurate, real-time price feeds from decentralized oracles to mitigate manipulation.\n4. Enable circuit breakers to pause the system in the event of large, suspicious transactions.", - "references": [ - "https://nordlayer.com/blog/blockchain-security-issues/" - ] - }, - { - "id": "protocol_specific_misconfiguration", - "remediation_advice": "1. Conduct formal verification of protocol logic and consensus rules.\n2. Regularly audit and test protocol configurations under various conditions.\n3. Implement failsafes to detect and mitigate abnormal behaviors.\n4. Use robust cryptographic primitives to secure protocol operations.", - "references": [ - "https://nordlayer.com/blog/blockchain-security-issues/" - ] - }, - { - "id": "smart_contract_misconfiguration", - "remediation_advice": "1. Conduct security audits and code reviews of smart contracts.\n2. Implement automated tools to detect common vulnerabilities.\n3. Use modifiers and access control patterns to enforce secure logic.\n4. Test contracts extensively with edge cases and different stress scenarios.", - "references": [ - "https://nordlayer.com/blog/blockchain-security-issues/" - ] - }, - { - "id": "zero_knowledge_security_misconfiguration", - "remediation_advice": "1. Regularly audit zero-knowledge implementations and parameter settings.\n2. Use well-established cryptographic libraries for proof generation and validation.\n3. Implement rigorous input validation to detect malformed proofs.\n4. Employ formal verification to ensure proof logic integrity. ", - "references": [ - "https://nordlayer.com/blog/blockchain-security-issues/" - ] - }, - { - "id": "blockchain_infrastructure_misconfiguration", - "remediation_advice": "1. Implement secure default settings and restrict administrative access to nodes and infrastructure.\n2. Regularly audit and validate network configurations against industry best practices.\n3. Use automated tools to detect and resolve misconfigurations in real time.\n4. Harden consensus mechanisms by enforcing robust cryptographic standards and validating peer integrity.\n5. Monitor network activity to detect and mitigate potential exploits stemming from misconfigurations.", - "references": [ - "https://nordlayer.com/blog/blockchain-security-issues/" - ] - }, - { - "id": "missing_subresource_integrity", - "remediation_advice": "1. **Implement SRI:** Add an `integrity` attribute with a base64-encoded hash to `