CVE-2024-38807
Medium · 6.3CVSS
6.3
EPSS
0.1%
Published
Aug 23, 2024
CISA due date
—
Cloudanix analysis
Some Java applications could be tricked into accepting tampered software components as if they came from a trusted source, increasing the chance that malicious code runs inside the application.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- High
- Impact
- Data Tampering
- Component
- Library
- Class
- Cryptographic Weakness
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw allows forged signatures on nested JAR files such that content signed by one party can be made to appear as if signed by another when custom signature verification logic processes spring-boot-loader or spring-boot-loader-classic archives.
Why it matters to the business
Organizations using the affected BOM packages risk accepting and running tampered application components that should have been rejected by signature checks, potentially leading to supply-chain compromise or unauthorized code execution in packaged Java applications.
How an attack unfolds
An attacker prepares a malicious nested JAR whose signature data is manipulated to pass custom verification routines in applications that rely on the vulnerable loader packages, causing the application to treat attacker-controlled content as legitimately signed.
How to fix it
Upgrade bom (Chainguard) and bom (Wolfi) packages to version 0.6.0-r0 or later; rebuild and redeploy any affected container images that embed the vulnerable BOM versions.
How to confirm the fix worked
Confirm package versions in deployed images match the fixed releases; re-run any custom signature verification tests against known-good and known-bad nested JAR samples after the upgrade.
Typical attack path
- Identify an application that performs custom signature verification on nested JARs using the vulnerable loader packages
- Craft or modify a nested JAR so its signature appears valid under the application's verification logic
- Deliver the forged archive through a supply-chain vector or local file system access
- Trigger the application's loading and verification path to accept the archive as authentic
How to detect it
Review application logs for unexpected JAR loading events or signature verification results that reference nested archives; inspect build artifacts and container layers for pre-upgrade BOM versions; monitor for any post-verification execution of unsigned or mismatched-signer content.
What your security team should do
- Immediately update Chainguard and Wolfi BOM packages to 0.6.0-r0 in all build pipelines
- Audit applications that implement custom nested-JAR signature verification and replace with library-provided verification where possible
- Add SBOM scanning to CI to detect future vulnerable loader versions before deployment
The record
Applications that use spring-boot-loader or spring-boot-loader-classic and contain custom code that performs signature verification of nested jar files may be vulnerable to signature forgery where content that appears to have been signed by one signer has, in fact, been signed by another.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.springframework.boot:spring-boot-loader | 2.7.0 | 2.7.22 |
| Maven | org.springframework.boot:spring-boot-loader | 3.0.0 | 3.0.17 |
| Maven | org.springframework.boot:spring-boot-loader | 3.1.0 | 3.1.13 |
| Maven | org.springframework.boot:spring-boot-loader | 3.2.0 | 3.2.9 |
| Maven | org.springframework.boot:spring-boot-loader | 3.3.0 | 3.3.3 |
| Maven | org.springframework.boot:spring-boot-loader-classic | 2.7.0 | 2.7.22 |
| Maven | org.springframework.boot:spring-boot-loader-classic | 3.0.0 | 3.0.17 |
| Maven | org.springframework.boot:spring-boot-loader-classic | 3.1.0 | 3.1.13 |
| Maven | org.springframework.boot:spring-boot-loader-classic | 3.2.0 | 3.2.9 |
| Maven | org.springframework.boot:spring-boot-loader-classic | 3.3.0 | 3.3.3 |
| Debian:11 | libspring-java | 0 | No fix |
| Debian:12 | libspring-java | 0 | No fix |
| Debian:13 | libspring-java | 0 | No fix |
| Ubuntu:20.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:22.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:24.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:24.10 | libspring-java | 0 | No fix |
| Ubuntu:25.04 | libspring-java | 0 | No fix |
| Ubuntu:25.10 | libspring-java | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | libspring-java | 0 | No fix |
| Ubuntu:Pro:24.04:LTS | libspring-java | 0 | No fix |
| maven | org.springframework.boot/spring-boot-loader | 2.7.0 | 2.7.22 |
| maven | org.springframework.boot/spring-boot-loader | 3.0.0 | 3.0.17 |
| maven | org.springframework.boot/spring-boot-loader | 3.1.0 | 3.1.13 |
| maven | org.springframework.boot/spring-boot-loader | 3.2.0 | 3.2.9 |
| maven | org.springframework.boot/spring-boot-loader | 3.3.0 | 3.3.3 |
| maven | org.springframework.boot/spring-boot-loader-classic | 2.7.0 | 2.7.22 |
| maven | org.springframework.boot/spring-boot-loader-classic | 3.0.0 | 3.0.17 |
| maven | org.springframework.boot/spring-boot-loader-classic | 3.1.0 | 3.1.13 |
| maven | org.springframework.boot/spring-boot-loader-classic | 3.2.0 | 3.2.9 |
| maven | org.springframework.boot/spring-boot-loader-classic | 3.3.0 | 3.3.3 |
Related vulnerabilities
- CVE-2025-41249 The Spring Framework annotation detection mechanism may not correctly resolve annotations… Also affects libspring-java
- CVE-2025-41242 Spring Framework MVC applications can be vulnerable to a “Path Traversal Vulnerability”… Also affects libspring-java
- CVE-2025-22233 CVE-2024-38820 ensured Locale-independent, lowercase conversion for both the configured… Also affects libspring-java
- CVE-2024-38819 Applications serving static resources through the functional web frameworks WebMvc.fn or… Also affects libspring-java
- CVE-2024-38829 A vulnerability in Spring LDAP allows data exposure for case sensitive comparisons.This… Also affects libspring-java
- CVE-2024-38828 Spring MVC controller methods with an @RequestBody byte[] method parameter are vulnerable… Also affects libspring-java
- CVE-2024-38820 Spring Framework DataBinder Case Sensitive Match Exception Also affects libspring-java
- CVE-2024-38809 Applications that parse ETags from "If-Match" or "If-None-Match" request headers are… Also affects libspring-java