Description
DefaultExecutionContextSerializer, used by default in Spring Batch's JDBC job repository, passes Base64-decoded bytes directly to ObjectInputStream.readObject() without an ObjectInputFilter that restricts types to a trusted class allowlist.
Spring Batch 6.0.0 - 6.0.4
Spring Batch 5.2.6 and earlier
Published: 2026-08-27
Score: 5.6 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability occurs in Spring Batch's default serialization logic, which decodes stored job context data from Base64 and feeds it directly to ObjectInputStream.readObject() without applying an ObjectInputFilter or class allowlist. This omission allows an adversary to craft a malicious serialized payload that an application will deserialize during job execution, leading to arbitrary code execution or other destructive actions in the context of the batch process. The weakness is a classic example of insecure deserialization, identified by CWE-502.

Affected Systems

Affected versions include Spring Batch 6.0.0 through 6.0.4 and all releases 5.2.6 and earlier. These versions employ the vulnerable DefaultExecutionContextSerializer in the JDBC job repository. Any deployment running one of these releases that accepts deserialized job data is at risk. All versions before 6.0.5 should be considered impacted, until a patch is applied.

Risk and Exploitability

The CVSS score of 5.6 classifies this issue as medium severity. No EPSS data is available, and it is not listed in CISA’s KEV catalog, which suggests that the vulnerability has not yet been widely observed in the wild. However, the absence of a type filter means that if an attacker can influence the contents of the job repository database or supply a pre‑written malicious serialized object, the execution of arbitrary code is possible. The most likely attack vector is the use of unauthenticated or improperly authorized access to the database that stores job contexts, allowing an attacker to inject the payload. Because the deserialization occurs during normal job execution, any privileged batch process or application service that starts jobs will be affected.

Generated by OpenCVE AI on August 27, 2026 at 07:28 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to the latest Spring Batch version that addresses the deserialization filter
  • Apply an ObjectInputFilter or implement a custom filter that only allows expected deserialization classes
  • Restrict database access to the job repository to trusted application components, ensuring that only signed or validated job data is stored

Generated by OpenCVE AI on August 27, 2026 at 07:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

References
History

Thu, 27 Aug 2026 07:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-502

Thu, 27 Aug 2026 06:15:00 +0000

Type Values Removed Values Added
Description DefaultExecutionContextSerializer, used by default in Spring Batch's JDBC job repository, passes Base64-decoded bytes directly to ObjectInputStream.readObject() without an ObjectInputFilter that restricts types to a trusted class allowlist. Spring Batch 6.0.0 - 6.0.4 Spring Batch 5.2.6 and earlier
Title Unsafe Java deserialization in DefaultExecutionContextSerializer without class allowlist
References
Metrics cvssV3_1

{'score': 5.6, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: vmware

Published:

Updated: 2026-08-27T05:21:29.918Z

Reserved: 2026-05-20T10:00:58.694Z

Link: CVE-2026-47878

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-27T06:17:17.640

Modified: 2026-08-27T06:17:17.640

Link: CVE-2026-47878

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-27T07:30:18Z

Weaknesses
  • CWE-502

    Deserialization of Untrusted Data