Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to integration endpoint
-
DeliverySubmit concurrent messages to script-backed channel
-
ExploitRace condition triggers shared ScriptEngine corruption
-
ExecutionCross-message payload/header bindings leak into script evaluation
-
ImpactSensitive data from another message's context disclosed
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires three specific conditions to hold simultaneously: (1) the target Spring Integration application must be configured with at least one channel that uses script-backed message processing via the JSR-223 ScriptEngine API; (2) the script engine in use must declare THREADING=null - the Kotlin KTS engine is the named example, but any JSR-223 engine without thread-safety guarantees qualifies; and (3) the channel must receive concurrent messages, meaning multiple threads must process messages simultaneously through the same channel instance. PR:L in the CVSS vector indicates that sending messages to the channel requires low-privilege authenticated access, not unauthenticated exploitation. AC:H reflects the timing-dependent nature of the race - the condition cannot be deterministically triggered and depends on concurrent scheduling. Deployments not using script-backed channels, using only THREADING=MULTITHREADED or STATELESS engines, or running integration channels on single-threaded executors are not exploitable. |
| Impact | The CVSS 3.1 vector AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N scores 4.2 (Medium), and the signal breakdown is internally consistent. AV:N is warranted because Spring Integration channels are typically triggered by network-delivered messages (HTTP, JMS, AMQP, etc.). AC:H correctly reflects that exploiting this race condition requires precise concurrent timing - low-throughput or single-threaded deployments are practically unexploitable. PR:L is appropriate since sending messages to an integration channel generally requires at least application-level credentials or channel access. The C:L/I:L impact reflects partial cross-message data leakage rather than full data exfiltration or system compromise. No EPSS score was provided in the input, so exploitation probability cannot be quantified. No CISA KEV listing and no public exploit code exists, indicating this remains a theoretical but credible risk rather than an actively weaponized threat. Real-world priority is elevated for multi-tenant Spring Integration deployments processing sensitive data (PII, credentials, financial records) over script-backed channels under concurrent load - in those environments the confidentiality impact is more severe than the base score suggests. Deployments that do not use script-backed channels, or that use only thread-safe script engines, are entirely unaffected. |
| Exploit ScenarioDerived | An attacker or malicious internal user with channel access sends a high volume of concurrent messages to a Spring Integration channel backed by the Kotlin KTS engine. Under concurrent load, a race between two threads causes Thread A's message payload bindings to overwrite Thread B's ScriptEngine context mid-evaluation, resulting in Thread B's script executing with Thread A's payload or header values - exposing potentially sensitive data from one user's message to another's processing context. No public exploit code exists, but the condition is reproducible through standard concurrent load generation against a vulnerable integration endpoint. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 27, 2026
Concurrent message processing in Spring Integration's script-backed channels causes shared ScriptEngine state corruption when using JSR-223 engines that declare THREADING=null, such as the Kotlin KTS engine. Affected Spring Integration versions from 5.5.21 and earlier through 7.1.0 are susceptible to cross-message data leakage, where one message's payload or header bindings can bleed into another message's script evaluation context under concurrent load. No public exploit has been identified at time of analysis, and the CVSS 4.2 Medium rating reflects the high attack complexity imposed by the required race condition, though the information disclosure and partial integrity impact are real concerns in multi-tenant or high-throughput deployments.
RemediationAI
Consult the vendor advisory at https://spring.io/security/cve-2026-59321 for exact patched version numbers - specific fix versions are not independently confirmed from the data provided and should not be inferred. The primary fix is expected to involve per-thread ScriptEngine instantiation or synchronization on the shared instance for engines that declare THREADING=null. As an immediate compensating control, replace non-thread-safe JSR-223 engines (such as Kotlin KTS, which reports THREADING=null) with thread-safe alternatives where available - engines declaring THREADING=MULTITHREADED or STATELESS are not affected by this race. Where script engine replacement is not feasible, restrict script-backed channels to single-threaded execution by configuring a dedicated single-threaded task executor for the channel's message dispatcher, which eliminates concurrency at the cost of reduced throughput. Avoid using script-backed channels to process messages containing sensitive cross-tenant data until patched, as the integrity of binding isolation between concurrent messages cannot be guaranteed.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Spring Integration is a widely-used Java framework extension implementing enterprise integration patterns (EIP) from the Spring ecosystem, maintained by VMware/Broadcom. Script-backed channels allow message processing logic to be defined using JSR-223 compliant scripting engines - a Java standard API for embedding scripting languages. The JSR-223 specification defines a THREADING attribute that advertises thread-safety guarantees: engines returning THREADING=null explicitly declare they are NOT thread-safe. The Kotlin KTS engine is a prominent example. The defect is that a single ScriptEngine instance is shared across all concurrent message processing threads on a given channel, violating the engine's threading contract. When multiple threads simultaneously invoke eval() on the same non-thread-safe engine, internal bindings (the variable scope associating message payload and headers with script variables) become corrupted across thread boundaries - a race condition in shared mutable state. CWE is listed as N/A by the submitter, but this maps most accurately to CWE-362 (Concurrent Execution Using Shared Resource with Improper Synchronization) or CWE-667 (Improper Locking). Affected CPE: cpe:2.3:a:spring:spring_integration:*:*:*:*:*:*:*:*.
Know when Spring gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
Network vector as channels are typically message-driven over network protocols; AC:H for mandatory concurrent timing; PR:L for required channel send access; C:L/I:L for partial cross-message data leakage with no availability impact.
Primary rating from Vendor (vmware).
CVSS VectorNVD
Lifecycle Timeline
1DescriptionNVD
A single ScriptEngine instance is reused for every message on a script-backed channel. For JSR-223 engines that report THREADING=null (not thread-safe, e.g. the Kotlin kts engine), concurrent message processing can corrupt engine-internal state, potentially leaking one message's payload/headers bindings into another message's script evaluation or throwing spurious exceptions. Spring Integration 7.1.0 Spring Integration 7.0.0 - 7.0.5 Spring Integration 6.5.0 - 6.5.10 Spring Integration 6.4.0 - 6.4.12 Spring Integration 5.5.21 and earlier
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).
Spring Cloud Gateway Server Webflux may be vulnerable to Spring Environment property modification. Rated critical severi
Access control bypass in SpringBlade v4.5.0 importUser function allows low-privileged users to import sensitive user dat
Spring Cloud Config Server contains a path traversal vulnerability when using the native file system backend, allowing u
Spring Framework MVC applications can be vulnerable to a “Path Traversal Vulnerability” when deployed on a non-compliant
SpringBlade v4.5.0 has an access control flaw in authRoutes allowing low-privileged users to escalate to admin through t
Remote code execution in Spring for GraphQL versions 1.3.0-1.3.8, 1.4.0-1.4.5, and 2.0.0-2.0.3 allows unauthenticated at
Server-Sent Events (SSE) stream corruption affects Spring MVC applications built on the functional web framework across
Spring AI versions 1.0.0 through 1.0.4 and 1.1.0 through 1.1.3 allow unauthenticated remote code execution through Sprin
Unsafe JSON deserialization in Spring Framework's JMS message converters (MappingJackson2MessageConverter and JacksonJso
Spring Security Aspects may not correctly locate method security annotations on private methods. Rated critical severity
Safety-guard bypass in the Spring Framework SpEL engine (VMware/Broadcom) lets attacker-controlled expression input esca
Directory traversal in Spring Cloud Config server module allows remote unauthenticated attackers to read arbitrary files
EUVD-2026-67202
GHSA-jwww-wmvq-qm8j
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB