CVE-2026-22738: SpEL Injection via Unescaped Filter Key in SimpleVectorStore Leads to Remote Code Execution
In Spring AI, a SpEL injection vulnerability exists in SimpleVectorStore when a user-supplied value is used as a filter expression key. A malicious actor could exploit this to execute arbitrary code. Only applications that use SimpleVectorStore and pass user-supplied input as a filter expression key are affected.
This issue affects Spring AI: from 1.0.0 before 1.0.5, from 1.1.0 before 1.1.4.
Security readout for executives and security teams
Plain-English summary
A critical flaw in Spring AI lets an attacker run code on the server if the application uses SimpleVectorStore and lets users influence the filter key. In affected setups, a crafted input could give an outsider full control of the application. Spring has published fixed versions, and exposure depends on whether the app actually passes user input into that filter key.
Executive priority
High priority for teams running Spring AI with SimpleVectorStore exposed to user input. Patch to 1.0.5 or 1.1.4 promptly; otherwise refactor to stop passing user input as filter keys.
Technical view
SimpleVectorStore evaluates filter expression keys through Spring Expression Language. When a user-supplied value reaches the key position, an attacker can submit a SpEL payload that the server evaluates, yielding remote code execution. Affects Spring AI 1.0.0 through 1.0.4 and 1.1.0 through 1.1.3; fixed in 1.0.5 and 1.1.4. CVSS 3.1 vector is AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
Likely exposure
Limited to applications built on Spring AI 1.0.0–1.0.4 or 1.1.0–1.1.3 that use SimpleVectorStore and pass user-supplied values as filter expression keys. Default configurations not meeting both conditions are unaffected.
Exploitation context
No public exploitation is cited and the CVE is not in CISA KEV. The vulnerability class (SpEL injection) is historically well understood and frequently weaponized once details are public, so opportunistic exploitation should be anticipated.
Researcher notes
Tracked as CWE-88 (argument injection) but functionally a SpEL injection where user data reaches a Spring Expression Language evaluation context through the filter key path in SimpleVectorStore. CVSS 9.8 reflects unauthenticated network exploitation with full CIA impact. Public reference points only to spring.io advisory; no PoC observed in cited sources as of 2026-05-12.
Mitigation direction
Upgrade Spring AI to 1.0.5 or 1.1.4 in line with the Spring security advisory.
Stop accepting user-supplied input as the key of a SimpleVectorStore filter expression.
Validate or allow-list filter keys against a fixed schema before they reach the vector store.
Review vendor guidance at spring.io for any additional configuration hardening.
Validation and detection
Inventory services using Spring AI and confirm the dependency version in build manifests.
Identify code paths that construct SimpleVectorStore filter expressions from request data.
Trace whether user input populates the filter key rather than only the value.
Verify upgraded environments report Spring AI 1.0.5 or 1.1.4 at runtime.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-88: Command execution behavior lookup
Command injection weaknesses can lead defenders to review execution techniques and command interpreter telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
2Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: yesTechnical Impact: total
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-88 · source CWE mapping
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.