Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to target application
-
DeliveryIdentify API endpoint invoking findByMetadata()
-
ExploitCraft metadata value with RediSearch escape sequences (e.g., x} | *)
-
ExecutionSubmit request with injected payload
-
PersistInjected query breaks out of tag clause
-
ImpactRetrieve all indexed chat messages across all conversations
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Query language parameterization
|
| Exploitation Conditions | Exploitation requires all of the following: (1) the application uses Spring AI 2.0.0 with RedisChatMemoryRepository backed by Redis and the RediSearch module; (2) the application exposes a code path that calls findByMetadata() with a value derived from user-controlled input targeting a tag-typed metadata field; (3) the attacker holds a valid low-privilege authenticated session in the application (PR:L per the provided CVSS vector). Exploitation is bounded by the authentication requirement - unauthenticated internet-based attacks are not possible. Applications that do not route user input to findByMetadata(), or that apply their own RediSearch-aware sanitization before the call, are not exploitable even when running the affected Spring AI version. |
| Impact | The CVSS 3.1 score of 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) reflects moderate real-world risk that is accurately characterized by the vector. Network reachability with low attack complexity means exploitation is technically straightforward, but the PR:L requirement - a valid authenticated session - rules out unauthenticated internet-scale abuse. The confidentiality impact is formally rated Low, yet the practical consequence of reading all chat messages across every conversation in the index may represent meaningful exposure depending on application context: conversations could contain PII, session context, business logic, or sensitive user data. No EPSS score was included in the provided intelligence, preventing probabilistic exploitation comparison. The CVE does not appear in the CISA KEV catalog, and no POC code was referenced, indicating no confirmed widespread active exploitation at time of analysis. Actual risk is conditional on whether a given deployment passes user-controlled values to findByMetadata() on tag-typed fields - applications that do not exercise this code path with untrusted input are not exposed regardless of version. |
| Exploit ScenarioDerived | An authenticated user of an application backed by Spring AI's Redis chat memory submits a crafted metadata filter value - for example, x} | * - to a search or retrieval endpoint that internally calls findByMetadata() on a tag-typed field. Because the value is not escaped, the injected wildcard breaks out of the intended tag clause, and the resulting RediSearch query returns chat messages from all users' conversations stored in the index. No public exploit code is known to exist at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 27, 2026
RediSearch query injection in Spring AI 2.0.0's RedisChatMemoryRepository grants authenticated low-privilege users read access to all indexed chat messages across every conversation in the Redis index. The findByMetadata() method omits the RediSearchUtil.escape() call consistently applied by sibling methods (get(), clear(), findByTimeRange()), allowing attacker-controlled metadata values to break out of RediSearch tag query clauses via injected syntax such as x} | * and match all documents in the index. No public exploit code has been identified at time of analysis, and the CVE does not appear in the CISA KEV catalog.
RemediationAI
Consult the official Spring AI security advisory at https://spring.io/security/cve-2026-59319 for the vendor-confirmed patched release, as no specific fix version was included in the available intelligence data. As an immediate compensating control, developers should ensure any value passed to RedisChatMemoryRepository.findByMetadata() from user-controlled input is sanitized with RediSearchUtil.escape() before being forwarded - this replicates the pattern already applied in get(), clear(), and findByTimeRange() within the same class. Implementing allowlist validation at the application layer to restrict the set of permitted metadata keys and values further limits the injection surface. If findByMetadata() with user-supplied tag-field values is not a required feature, removing or disabling that code path entirely eliminates the exposure with no functional trade-off.
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 AI is a Java framework from the VMware/Spring ecosystem for integrating large language model capabilities into applications. Its RedisChatMemoryRepository uses Redis with the RediSearch module to index and query conversational memory. RediSearch supports a structured query language where tag fields are queried using curly-brace syntax - for example, @fieldname:{value}. The vulnerability (CPE: cpe:2.3:a:spring:spring_ai:*:*:*:*:*:*:*:*) arises because findByMetadata() interpolates caller-supplied values directly into RediSearch query strings without invoking RediSearchUtil.escape() to neutralize special characters, an inconsistency relative to the escape-safe patterns in the same class. Injecting characters such as closing braces or pipe operators terminates the tag clause early and allows appending wildcard expressions that match every document in the RediSearch index. No CWE identifier was assigned in the available data, but the root cause maps conceptually to improper neutralization of special elements in a query (analogous to CWE-943).
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:N/A:N
Network-reachable via application layer; PR:L because a valid authenticated session is required; C:L for cross-conversation message read with no integrity or availability impact.
Primary rating from Vendor (vmware).
CVSS VectorVendor: vmware
DescriptionCVE.org
RedisChatMemoryRepository.findByMetadata() builds RediSearch tag and text queries from caller-supplied metadata values without applying RediSearchUtil.escape(), unlike get(), clear(), and findByTimeRange() in the same class which do escape their inputs. An application that passes user-controlled values to findByMetadata() on a tag-typed metadata field allows an attacker to inject RediSearch syntax (e.g. x} | *) that breaks out of the tag clause and matches all indexed chat messages across every conversation in the index. Spring AI 2.0.0
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
NoSQL injection exploits databases that don't use traditional SQL syntax-like MongoDB, CouchDB, or Redis-by manipulating queries through unsanitized user input.
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-67200
GHSA-7r3j-5666-wc3c
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB