Cloudanix VulnDB

CVE-2024-38807

Medium · 6.3

CVSS

6.3

EPSS

0.1%

Published

Aug 23, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

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

  1. Identify an application that performs custom signature verification on nested JARs using the vulnerable loader packages
  2. Craft or modify a nested JAR so its signature appears valid under the application's verification logic
  3. Deliver the forged archive through a supply-chain vector or local file system access
  4. 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