CVE-2020-5397 | CSRF Attack via CORS Preflight Requests with Spring MVC or Spring WebFlux

Exp

Spring Framework, versions 5.2.x prior to 5.2.3 are vulnerable to CSRF attacks through CORS preflight requests that target Spring MVC (spring-webmvc module) or Spring WebFlux (spring-webflux module) endpoints. Only non-authenticated endpoints are vulnerable because preflight requests should not include credentials and therefore requests should fail authentication. However a notable exception to this are Chrome based browsers when using client certificates for authentication since Chrome sends TLS client certificates in CORS preflight requests in violation of spec requirements. No HTTP body can be sent or received as a result of this attack.

Published: 2020-01-17 Last update: 2024-11-21 Assigner: [email protected] Source: [email protected]

Conclusion & alert: CVE-2020-5397 is rated High Exploit Risk (62.7/100): CVSS Medium severity, with medium exploitation likelihood (EPSS 0.89%). Core evidence: 1 public exploit reference(s) are indexed (Exploit-DB). Mandatory action: Public exploits are available—assess exposure, apply mitigations, and prioritize patching.

Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.

Public exploit references (Exploit-DB) for CVE-2020-5397

EDB-ID Source Kind Published Link
nvd_ref exploit_tag Exploit-DB ↗

Exploit prediction scoring system (EPSS) score for CVE-2020-5397

EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).

# Date Old EPSS score New EPSS score Delta (New - Old)
1 2025-11-21 0.52% 0.89% +0.37%
2 2025-11-18 0.89% 0.52% -0.37%
3 2025-05-02 0.89%

Full EPSS history (18 records total)

Common vulnerability scoring system (CVSS) metrics for CVE-2020-5397

CVSS metrics for this CVE.

Base score Version Severity Vector Exploitability Impact Score source
5.3 3.1 MEDIUM
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Click to expand
Attack vector (AV:N)
Could be attacked over the internet or any normal routed network—not just someone sitting at the machine.
Attack complexity (AC:L)
Once they can reach the bug, pulling it off is straightforward—no weird race conditions or rare setup.
Privileges required (PR:N)
No account or special rights needed—anonymous or random user is enough.
User interaction (UI:N)
Nobody has to click “OK” or open a trap file; it can work without a victim helping.
Scope (S:U)
Damage stays in the same “trust bubble” as the broken component—no big spill into unrelated systems.
Confidentiality (C:N)
Doesn’t really leak secrets in a meaningful way.
Integrity (I:L)
Attackers could change some data, but it’s limited—not everything goes.
Availability (A:N)
Service keeps running; no real outage angle.
3.9 1.4 [email protected]
5.3 3.0 MEDIUM
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Click to expand
Attack vector (AV:N)
Could be attacked over the internet or any normal routed network—not just someone sitting at the machine.
Attack complexity (AC:L)
Once they can reach the bug, pulling it off is straightforward—no weird race conditions or rare setup.
Privileges required (PR:N)
No account or special rights needed—anonymous or random user is enough.
User interaction (UI:N)
Nobody has to click “OK” or open a trap file; it can work without a victim helping.
Scope (S:U)
Damage stays in the same “trust bubble” as the broken component—no big spill into unrelated systems.
Confidentiality (C:N)
Doesn’t really leak secrets in a meaningful way.
Integrity (I:L)
Attackers could change some data, but it’s limited—not everything goes.
Availability (A:N)
Service keeps running; no real outage angle.
3.9 1.4 [email protected]
2.6 2.0 LOW
AV:N/AC:H/Au:N/C:N/I:P/A:N Click to expand
Access vector (AV:N)
Can be exploited remotely over network reachability.
Access complexity (AC:H)
Exploitation requires uncommon or highly specific conditions.
Authentication (AU:N)
No authentication is required.
Confidentiality impact (C:N)
No confidentiality impact.
Integrity impact (I:P)
Partial integrity impact.
Availability impact (A:N)
No availability impact.
4.9 2.9 [email protected]

Weakness enumeration for CVE-2020-5397

GitHub Security Advisory for CVE-2020-5397

GHSA-7pm4-g2qj-j85x · Severity: medium · Ecosystem: maven — CSRF attack via CORS preflight requests with Spring MVC or Spring WebFlux

OS Trackers for CVE-2020-5397

vendor priority summary link
debian unimportant CVE-2020-5397 unimportant priority: Debian including 1 source packages (libspring-java), 5 status rows across 5 suites (bookworm, bullseye, forky, sid, trixie): resolved 5. https://security-tracker.debian.org/tracker/CVE-2020-5397
redhat low https://access.redhat.com/security/cve/CVE-2020-5397
ubuntu medium CVE-2020-5397 medium priority: Ubuntu including 1 source packages (libspring-java), 18 status rows across 18 suites (bionic, disco, eoan, focal, groovy, hirsute, impish, jammy, kinetic, lunar, mantic, noble, oracular, plucky, questing, trusty, upstream, xenial): ignored 10, needs-triage 8. https://ubuntu.com/security/CVE-2020-5397

Affected software / configurations for CVE-2020-5397

Vendor Product Version Raw CPE
vmware spring_framework >= 5.2.0, < 5.2.3 cpe:2.3:a:vmware:spring_framework:*:*:*:*:*:*:*:*
oracle application_testing_suite 13.3.0.1 cpe:2.3:a:oracle:application_testing_suite:13.3.0.1:*:*:*:*:*:*:*
oracle communications_brm_-_elastic_charging_engine 11.3 cpe:2.3:a:oracle:communications_brm_-_elastic_charging_engine:11.3:*:*:*:*:*:*:*
oracle communications_brm_-_elastic_charging_engine 12.0 cpe:2.3:a:oracle:communications_brm_-_elastic_charging_engine:12.0:*:*:*:*:*:*:*
oracle communications_diameter_signaling_router >= 8.0.0, <= 8.2.2 cpe:2.3:a:oracle:communications_diameter_signaling_router:*:*:*:*:*:*:*:*
oracle communications_element_manager 8.1.1 cpe:2.3:a:oracle:communications_element_manager:8.1.1:*:*:*:*:*:*:*
oracle communications_element_manager 8.2.0 cpe:2.3:a:oracle:communications_element_manager:8.2.0:*:*:*:*:*:*:*
oracle communications_element_manager 8.2.1 cpe:2.3:a:oracle:communications_element_manager:8.2.1:*:*:*:*:*:*:*
oracle communications_policy_management 12.5.0 cpe:2.3:a:oracle:communications_policy_management:12.5.0:*:*:*:*:*:*:*
oracle communications_session_route_manager 8.1.1 cpe:2.3:a:oracle:communications_session_route_manager:8.1.1:*:*:*:*:*:*:*
oracle communications_session_route_manager 8.2.0 cpe:2.3:a:oracle:communications_session_route_manager:8.2.0:*:*:*:*:*:*:*
oracle communications_session_route_manager 8.2.1 cpe:2.3:a:oracle:communications_session_route_manager:8.2.1:*:*:*:*:*:*:*
oracle enterprise_manager_base_platform 13.2.1.0 cpe:2.3:a:oracle:enterprise_manager_base_platform:13.2.1.0:*:*:*:*:*:*:*
oracle financial_services_regulatory_reporting_with_agilereporter 8.0.9.2.0 cpe:2.3:a:oracle:financial_services_regulatory_reporting_with_agilereporter:8.0.9.2.0:*:*:*:*:*:*:*
oracle flexcube_private_banking 12.0.0 cpe:2.3:a:oracle:flexcube_private_banking:12.0.0:*:*:*:*:*:*:*
oracle flexcube_private_banking 12.1.0 cpe:2.3:a:oracle:flexcube_private_banking:12.1.0:*:*:*:*:*:*:*
oracle healthcare_master_person_index 4.0.2 cpe:2.3:a:oracle:healthcare_master_person_index:4.0.2:*:*:*:*:*:*:*
oracle insurance_calculation_engine >= 11.0.0, <= 11.3.1 cpe:2.3:a:oracle:insurance_calculation_engine:*:*:*:*:*:*:*:*
oracle insurance_policy_administration_j2ee 10.2.0 cpe:2.3:a:oracle:insurance_policy_administration_j2ee:10.2.0:*:*:*:*:*:*:*
oracle insurance_policy_administration_j2ee 10.2.4 cpe:2.3:a:oracle:insurance_policy_administration_j2ee:10.2.4:*:*:*:*:*:*:*
oracle insurance_policy_administration_j2ee 11.0.2 cpe:2.3:a:oracle:insurance_policy_administration_j2ee:11.0.2:*:*:*:*:*:*:*
oracle insurance_policy_administration_j2ee 11.1.0 cpe:2.3:a:oracle:insurance_policy_administration_j2ee:11.1.0:*:*:*:*:*:*:*
oracle insurance_policy_administration_j2ee 11.2.0 cpe:2.3:a:oracle:insurance_policy_administration_j2ee:11.2.0:*:*:*:*:*:*:*
oracle insurance_rules_palette 10.2.0 cpe:2.3:a:oracle:insurance_rules_palette:10.2.0:*:*:*:*:*:*:*
oracle insurance_rules_palette 10.2.4 cpe:2.3:a:oracle:insurance_rules_palette:10.2.4:*:*:*:*:*:*:*
oracle insurance_rules_palette 11.0.2 cpe:2.3:a:oracle:insurance_rules_palette:11.0.2:*:*:*:*:*:*:*
oracle insurance_rules_palette 11.1.0 cpe:2.3:a:oracle:insurance_rules_palette:11.1.0:*:*:*:*:*:*:*
oracle insurance_rules_palette 11.2.0 cpe:2.3:a:oracle:insurance_rules_palette:11.2.0:*:*:*:*:*:*:*
oracle mysql_enterprise_monitor >= 4.0.0, <= 4.0.12 cpe:2.3:a:oracle:mysql_enterprise_monitor:*:*:*:*:*:*:*:*
oracle mysql_enterprise_monitor >= 8.0.0, <= 8.0.20 cpe:2.3:a:oracle:mysql_enterprise_monitor:*:*:*:*:*:*:*:*
oracle rapid_planning 12.1 cpe:2.3:a:oracle:rapid_planning:12.1:*:*:*:*:*:*:*
oracle rapid_planning 12.2 cpe:2.3:a:oracle:rapid_planning:12.2:*:*:*:*:*:*:*
oracle retail_assortment_planning 15.0 cpe:2.3:a:oracle:retail_assortment_planning:15.0:*:*:*:*:*:*:*
oracle retail_assortment_planning 16.0 cpe:2.3:a:oracle:retail_assortment_planning:16.0:*:*:*:*:*:*:*
oracle retail_back_office 14.1 cpe:2.3:a:oracle:retail_back_office:14.1:*:*:*:*:*:*:*
oracle retail_central_office 14.1 cpe:2.3:a:oracle:retail_central_office:14.1:*:*:*:*:*:*:*
oracle retail_financial_integration 15.0 cpe:2.3:a:oracle:retail_financial_integration:15.0:*:*:*:*:*:*:*
oracle retail_financial_integration 16.0 cpe:2.3:a:oracle:retail_financial_integration:16.0:*:*:*:*:*:*:*
oracle retail_integration_bus 15.0.3 cpe:2.3:a:oracle:retail_integration_bus:15.0.3:*:*:*:*:*:*:*
oracle retail_integration_bus 16.0.3 cpe:2.3:a:oracle:retail_integration_bus:16.0.3:*:*:*:*:*:*:*
oracle retail_order_broker 15.0 cpe:2.3:a:oracle:retail_order_broker:15.0:*:*:*:*:*:*:*
oracle retail_order_broker 16.0 cpe:2.3:a:oracle:retail_order_broker:16.0:*:*:*:*:*:*:*
oracle retail_point-of-service 14.1 cpe:2.3:a:oracle:retail_point-of-service:14.1:*:*:*:*:*:*:*
oracle retail_predictive_application_server 14.0.3 cpe:2.3:a:oracle:retail_predictive_application_server:14.0.3:*:*:*:*:*:*:*
oracle retail_predictive_application_server 14.1.3 cpe:2.3:a:oracle:retail_predictive_application_server:14.1.3:*:*:*:*:*:*:*
oracle retail_predictive_application_server 15.0.3.0 cpe:2.3:a:oracle:retail_predictive_application_server:15.0.3.0:*:*:*:*:*:*:*
oracle retail_predictive_application_server 16.0.3.0 cpe:2.3:a:oracle:retail_predictive_application_server:16.0.3.0:*:*:*:*:*:*:*
oracle retail_returns_management 14.1 cpe:2.3:a:oracle:retail_returns_management:14.1:*:*:*:*:*:*:*
oracle retail_service_backbone 15.0 cpe:2.3:a:oracle:retail_service_backbone:15.0:*:*:*:*:*:*:*
oracle retail_service_backbone 16.0 cpe:2.3:a:oracle:retail_service_backbone:16.0:*:*:*:*:*:*:*
oracle weblogic_server 12.2.1.3.0 cpe:2.3:a:oracle:weblogic_server:12.2.1.3.0:*:*:*:*:*:*:*
oracle weblogic_server 12.2.1.4.0 cpe:2.3:a:oracle:weblogic_server:12.2.1.4.0:*:*:*:*:*:*:*

References for CVE-2020-5397

cvelogic Threat Intelligence