Repository navigation
[Aikido] Fix 2 critical issues in spring-core, spring-webmvc, spring-web and 6 more and 46 other issues - #10
Open
aikido-autofix[bot] wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Thank you for submitting a pull request to the WebGoat!
Summary / Description
Upgrade dependencies to fix critical RCE and arbitrary code execution vulnerabilities in XStream, Spring, Tomcat, Thymeleaf, and Jackson. This update includes breaking changes that require manual migration.
Security Impact — CVE vulnerabilities fixed by this PR
✅ 48 CVEs resolved by this upgrade, including 16 critical 🚨 CVEs
This PR will resolve the following CVEs:
Breaking Changes & Upgrade Impact — prefer Warnings / Cautions /⚠️ sections over implementation sections (upgrade risks, breaking changes, manual migration steps)
1. WebJars support removed
Where your code is affected:
pom.xmllines 103, 211-213 (dependency declaration)src/main/resources/webwolf/templates/fragments/header.htmllines 6-9 (template references to/webjars/bootstrap/and/webjars/jquery/)src/main/java/org/owasp/webgoat/webwolf/WebSecurityConfig.javaline 25 (security configuration permits/webjars/**)src/main/java/org/owasp/webgoat/webwolf/requests/WebWolfTraceRepository.javaline 36 (trace filtering)Impact: Spring Framework 7.0 removes WebJars support with
org.webjars:webjars-locator-core. The automatic version resolution for WebJars paths (e.g.,/webjars/bootstrap/css/bootstrap.min.css→/webjars/bootstrap/5.3.5/css/bootstrap.min.css) will no longer work. Templates referencing/webjars/paths will fail to load CSS and JavaScript resources.Remediation: Either manually configure resource handlers to map
/webjars/**toclasspath:/META-INF/resources/webjars/with explicit version numbers in template paths, or migrate to using versioned paths directly in templates and add explicit resource handler mappings inMvcConfigurationclasses.All breaking changes by upgrading org.springframework:spring-core from version 6.2.11 to 7.0.9 (CHANGELOG)
All breaking changes by upgrading org.springframework:spring-webmvc from version 6.2.11 to 7.0.9 (CHANGELOG)
All breaking changes by upgrading org.springframework:spring-web from version 6.2.11 to 7.0.9 (CHANGELOG)
All breaking changes by upgrading org.springframework:spring-beans from version 6.2.11 to 7.0.9 (CHANGELOG)
All breaking changes by upgrading org.springframework:spring-expression from version 6.2.11 to 7.0.9 (CHANGELOG)
All breaking changes by upgrading org.springframework:spring-context from version 6.2.11 to 7.0.9 (CHANGELOG)
Fix Details / Technical Implementation (detailed write-up of what was changed and why)
🤖 Remediation details
Remediate critical and high CVEs in xstream, Tomcat, Spring Framework, Spring Security, Thymeleaf, and Jackson (2.x and 3.x)
What was fixed and where: This PR updates
pom.xmlto resolve security vulnerabilities incom.thoughtworks.xstream:xstream,org.apache.tomcat.embed:tomcat-embed-core(and related Tomcat artifacts),org.springframework:spring-core(and related Spring Framework artifacts),org.springframework.security:spring-security-core(and related Spring Security artifacts),org.thymeleaf:thymeleaf(and related Thymeleaf artifacts),com.fasterxml.jackson.core:jackson-databind(Jackson 2.x), andtools.jackson.core:jackson-databind/tools.jackson.core:jackson-core(Jackson 3.x). Changes are confined to the rootpom.xml: the Spring Boot parent version, thexstream.versionproperty, removal of the stalethymeleaf.versionproperty override, addition of atools.jackson:jackson-bomBOM import override, and adependencyManagemententry forio.rest-assured:rest-assuredto preserve a version that the new parent no longer manages.com.thoughtworks.xstream:xstream
xstreamis declared directly in<dependencyManagement>via the${xstream.version}property and consumed as a direct dependency. The property was pinned at1.4.5, which is affected by 36 CVEs spanning RCE, SSRF, and DoS classes. Thexstream.versionproperty was bumped to1.4.20, the minimum version that clears all listed advisories, with no other changes required.org.apache.tomcat.embed:tomcat-embed-core / org.apache.tomcat:tomcat-*
All Tomcat artifacts are transitive dependencies managed entirely by the Spring Boot parent BOM via its
tomcat.versionproperty. Spring Boot3.5.6resolved Tomcat at10.1.46, which is below the10.1.55floor required to clear the listed Tomcat CVEs. Bumping the Spring Boot parent to4.0.8resolves Tomcat at11.0.24, which satisfies all required fix versions.org.springframework:spring-core / spring-webmvc / spring-web / spring-beans / spring-expression / spring-context
All Spring Framework artifacts are transitive dependencies managed by the Spring Boot parent BOM via its
spring-framework.versionproperty. Spring Boot3.5.6resolved Spring Framework at6.2.11; the required fix version is7.0.9, which is a major-line jump that no Spring Boot 3.x release covers. Bumping the Spring Boot parent to4.0.8resolves Spring Framework at7.0.9, satisfying the advisory requirement.org.springframework.security:spring-security-core / spring-security-config / spring-security-web
All Spring Security artifacts are transitive dependencies managed by the Spring Boot parent BOM via its
spring-security.versionproperty. Spring Boot3.5.6resolved Spring Security at6.5.5, below the6.5.9floor required by the listed CVE. Bumping the Spring Boot parent to4.0.8resolves Spring Security at7.0.7, which satisfies the requirement.org.thymeleaf:thymeleaf / thymeleaf-spring5 / thymeleaf-spring6
Thymeleaf artifacts are transitive dependencies managed by the Spring Boot parent BOM. Spring Boot
3.5.6managed Thymeleaf at3.1.3.RELEASE, and the project's ownthymeleaf.versionproperty was overriding that to the older3.1.2.RELEASE. Both are below the3.1.5.RELEASEfloor required by the listed CVEs. Thethymeleaf.versionproperty override was removed (it was pinning a vulnerable version against the parent), and the Spring Boot parent was bumped to4.0.8, which manages Thymeleaf at3.1.5.RELEASE.com.fasterxml.jackson.core:jackson-databind (Jackson 2.x)
jackson-databind(2.x line,com.fasterxml.jackson.coregroup) is a transitive dependency managed by the Spring Boot parent BOM via thejackson-bomimport. Spring Boot3.5.6already resolved this at2.19.2, which meets the2.18.8minimum required by the listed CVEs — no change was needed for the 2.x line itself. The parent bump to4.0.8moves it to2.21.5, which continues to satisfy the requirement.tools.jackson.core:jackson-databind / tools.jackson.core:jackson-core (Jackson 3.x)
Spring Boot
4.0.8introduced a dependency on the Jackson 3.x line (tools.jackson.coregroup) by importingtools.jackson:jackson-bom:3.1.5, which resolves bothjackson-coreandjackson-databindat3.1.5. That version is affected by 7 CVEs; the minimum fix version covering all of them is3.1.7. No Spring Boot 4.x release yet shipstools.jackson:jackson-bomat≥3.1.7, so a targeted BOM import override —tools.jackson:jackson-bom:3.1.7as a<scope>import</scope>entry placed at the top of the project's own<dependencyManagement>block — was added. This overrides the parent-inherited BOM and resolves bothtools.jackson.core:jackson-coreandtools.jackson.core:jackson-databindat3.1.7.Version changes
org.springframework.boot:spring-boot-starter-parent(parent POM)3.5.64.0.8com.thoughtworks.xstream:xstream1.4.51.4.20xstream.versionproperty bumped inpom.xmlorg.thymeleaf:thymeleaf3.1.2.RELEASE(property override)3.1.5.RELEASE(parent-managed)thymeleaf.versionproperty removed; parent now manages patched versionorg.thymeleaf:thymeleaf-spring63.1.2.RELEASE3.1.5.RELEASEorg.thymeleaf.extras:thymeleaf-extras-springsecurity63.1.2.RELEASE3.1.5.RELEASEtools.jackson.core:jackson-core3.1.53.1.7tools.jackson:jackson-bom:3.1.7BOM override added todependencyManagementtools.jackson.core:jackson-databind3.1.53.1.7tools.jackson:jackson-bom:3.1.7BOM override added todependencyManagementcom.fasterxml.jackson.core:jackson-databind2.19.22.21.5spring-boot-starter-parent4.0.8)com.fasterxml.jackson.core:jackson-core2.19.22.21.5spring-boot-starter-parent4.0.8)org.apache.tomcat.embed:tomcat-embed-core10.1.4611.0.24spring-boot-starter-parent4.0.8) — CVE fixorg.apache.tomcat.embed:tomcat-embed-websocket10.1.4611.0.24spring-boot-starter-parent4.0.8) — CVE fixorg.apache.tomcat:tomcat-coyote10.1.4611.0.24spring-boot-starter-parent4.0.8) — CVE fixorg.apache.tomcat:tomcat-catalina10.1.4611.0.24spring-boot-starter-parent4.0.8) — CVE fixorg.apache.tomcat:tomcat-util10.1.4611.0.24spring-boot-starter-parent4.0.8) — CVE fixorg.springframework:spring-core6.2.117.0.9spring-boot-starter-parent4.0.8) — CVE fixorg.springframework:spring-webmvc6.2.117.0.9spring-boot-starter-parent4.0.8) — CVE fixorg.springframework:spring-web6.2.117.0.9spring-boot-starter-parent4.0.8) — CVE fixorg.springframework:spring-beans6.2.117.0.9spring-boot-starter-parent4.0.8) — CVE fixorg.springframework:spring-expression6.2.117.0.9spring-boot-starter-parent4.0.8) — CVE fixorg.springframework:spring-context6.2.117.0.9spring-boot-starter-parent4.0.8) — CVE fixorg.springframework.security:spring-security-core6.5.57.0.7spring-boot-starter-parent4.0.8) — CVE fixorg.springframework.security:spring-security-config6.5.57.0.7spring-boot-starter-parent4.0.8) — CVE fixorg.springframework.security:spring-security-web6.5.57.0.7spring-boot-starter-parent4.0.8) — CVE fixio.rest-assured:rest-assured5.5.6(parent-managed)5.5.6(explicitdependencyManagemententry)rest-assured-bom; version pinned explicitly to preserve build