LangChain4j: SQL injection via metadata filters in langchain4j-mariadb and langchain4j-pgvector
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 1.2.1-beta8, 1.5.1-beta11, 1.11.8-beta19, 1.16.3-beta26
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
LangChain4j is a Java library for building LLM-powered applications on the JVM. Prior to 1.2.1-beta8, 1.5.1-beta11, 1.11.8-beta19, and 1.16.3-beta26, the MariaDB and pgvector embedding stores build metadata-filter SQL by string-concatenating filter keys, and in MariaDB string values, directly into the query without adequate escaping. A crafted metadata key in EmbeddingSearchRequest.filter() can break out of its SQL context and inject arbitrary SQL into the statements executed by the stores' search and removeAll(Filter) operations, enabling blind data exfiltration, denial of service via sleep functions, and deletion of arbitrary rows through removeAll(Filter). This issue is fixed in langchain4j-mariadb and langchain4j-pgvector versions 1.2.1-beta8, 1.5.1-beta11, 1.11.8-beta19, and 1.16.3-beta26.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- langchain4j langchain4j
fixed in 1.2.1-beta8; From 1.3.0-beta9 · fixed in 1.5.1-beta11; From 1.6.0-beta12 · fixed in 1.11.8-beta19; From 1.12.1-beta21 · fixed in 1.16.3-beta26
- dev.langchain4j:langchain4j-mariadbMaven
fixed in 1.2.1-beta8
- dev.langchain4j:langchain4j-mariadbMaven
From 1.3.0-beta9 · fixed in 1.5.1-beta11
- dev.langchain4j:langchain4j-mariadbMaven
From 1.6.0-beta12 · fixed in 1.11.8-beta19
- dev.langchain4j:langchain4j-mariadbMaven
From 1.12.1-beta21 · fixed in 1.16.3-beta26
- dev.langchain4j:langchain4j-pgvectorMaven
fixed in 1.2.1-beta8
- dev.langchain4j:langchain4j-pgvectorMaven
From 1.3.0-beta9 · fixed in 1.5.1-beta11
- dev.langchain4j:langchain4j-pgvectorMaven
From 1.6.0-beta12 · fixed in 1.11.8-beta19
- dev.langchain4j:langchain4j-pgvectorMaven
From 1.12.1-beta21 · fixed in 1.16.3-beta26