Skip to content

feature: Spring Boot 3.2.11 (spring-webmvc 6.1.14) to fix CVE-2024-38819 [major bump, requires Java 17] - #480

Open
devin-ai-integration[bot] wants to merge 1 commit into
masterfrom
devin/sfind-d5ea2c99-spring-webmvc-cve-2024-38819
Open

devin-ai-integration[bot] wants to merge 1 commit into
masterfrom
devin/sfind-d5ea2c99-spring-webmvc-cve-2024-38819

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Summary

Fixes Snyk SNYK-JAVA-ORGSPRINGFRAMEWORK-8230373 / CVE-2024-38819 (spring-webmvc path traversal, CWE-23) reported on UserFront/pom.xml:30 (finding sfind-d5ea2c99). The fix moves the spring-boot-starter-parent from 1.5.4.RELEASE to 3.2.11, the smallest upgrade path Snyk lists (Boot 3.2.11 brings in spring-webmvc 6.1.14).

Warning

Two things go against the remediation guidance. Please review before merging.

Code changes the migration requires (based on the existing Boot 3 migration branch devin/1790739508-spring-webmvc-cve-2026-22735, re-pinned to 3.2.11):

  • pom.xml: parent 3.2.11, java.version 17, mysql:mysql-connector-java → com.mysql:mysql-connector-j.
  • javax.persistence/javax.servlet → jakarta.* in domain/** and RequestFilter.
  • SecurityConfig: WebSecurityConfigurerAdapter removed (it no longer exists) → a SecurityFilterChain bean plus a DaoAuthenticationProvider bean. Matchers, form login, logout and remember-me stay the same, and CSRF/CORS stay disabled as before. "/error/**/*" → "/error/**", because PathPattern rejects ** in the middle of a pattern.
  • AppointmentServiceImpl: findOne(id) → findById(id).orElse(null) (Spring Data 2+).
  • application.properties: spring.main.allow-circular-references=true (UserServiceImpl ↔ AccountServiceImpl), and the hard-coded MySQL5Dialect is dropped because Hibernate 6 auto-detects the dialect.
  • Test moved to JUnit 5. Maven wrapper → 3.9.9 (Boot 3 needs Maven 3.6.3 or newer).

Verification

Not fully verified. Maven Central and the Snyk API can't be reached from the build environment (network allowlist), so neither the exact 3.2.11 build nor a Snyk re-scan could run:

  • Snyk before/after issue count: not measured. snyk test --file=UserFront/pom.xml fails with SNYK-CLI-0000 (no network). Expected result: this finding clears, because Boot 3.2.11 manages spring-webmvc 6.1.14 ([,6.1.14) is vulnerable).
  • What I could run, on a copy of this branch with the parent swapped to the locally cached Boot 3.3.4 (Spring 6.1.13, Security 6.3.3, Hibernate 6.5.3, Tomcat 10.1.30), JDK 17, against mysql:5.7:
    • mvn -o compile passed.
    • UserFrontApplicationTests.contextLoads ran through the JUnit Platform launcher (surefire's junit-platform provider isn't cached): 1 test, 1 successful, 0 failed.
    • App boot plus a curl smoke test: Started UserFrontApplication. POST /signup → 302, POST /index → 302 /userFront, GET /userFront → 200, POST /account/deposit (Primary, 250) → 302 and the DB shows balance 250.00 plus the Deposit to Primary Account row. A wrong password → /index?error. Anonymous /account/primaryAccount → 302 /index. Encoded traversal requests (/css/..%2f..%2f..%2fetc/passwd, /webjars/%2e%2e/...) → 400.
  • SecurityConfig uses new DaoAuthenticationProvider() + setUserDetailsService(...) because the DaoAuthenticationProvider(UserDetailsService) constructor only exists from Security 6.3 on, and 3.2.11 ships Security 6.2.
  • Before merging: run cd UserFront && ./mvnw verify and snyk test with network access to confirm the exact 3.2.11 dependency set and the issue count.

Devin-Org: engineering

Link to Devin session: https://devin-gtm.devinenterprise.com/sessions/5a088181a4fa43be81175e8f8ff32a4e
Open in Devin Desktop: https://devin-gtm.devinenterprise.com/desktop/session/5a088181a4fa43be81175e8f8ff32a4e?variant=devin


Devin Review

Status Commit
⚪ Not started —

Run Devin Review

Devin Review (Staging)


Devin Review

@devin-ai-integration

Copy link
Copy Markdown
Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

1 flag not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)

Devin Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants