CVE-2026-55405 (GCVE-0-2026-55405)
Vulnerability from cvelistv5 – Published: 2026-07-10 20:33 – Updated: 2026-07-10 20:33
VLAI
EPSS
VEX
Title
LangChain4j: SQL injection via metadata filters in langchain4j-mariadb and langchain4j-pgvector
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.
Severity
7.6 (High)
CWE
- CWE-89 - Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Assigner
References
7 references
| URL | Tags |
|---|---|
| https://github.com/langchain4j/langchain4j/securi… | x_refsource_CONFIRM |
| https://github.com/langchain4j/langchain4j/commit… | x_refsource_MISC |
| https://github.com/langchain4j/langchain4j/commit… | x_refsource_MISC |
| https://github.com/langchain4j/langchain4j/commit… | x_refsource_MISC |
| https://github.com/langchain4j/langchain4j/commit… | x_refsource_MISC |
| https://github.com/langchain4j/langchain4j/commit… | x_refsource_MISC |
| https://github.com/langchain4j/langchain4j/releas… | x_refsource_MISC |
Impacted products
1 product
| Vendor | Product | Version | |
|---|---|---|---|
| langchain4j | langchain4j |
Affected:
< 1.2.1-beta8
Affected: >= 1.3.0-beta9, < 1.5.1-beta11 Affected: >= 1.6.0-beta12, < 1.11.8-beta19 Affected: >= 1.12.1-beta21, < 1.16.3-beta26 |
{
"containers": {
"cna": {
"affected": [
{
"product": "langchain4j",
"vendor": "langchain4j",
"versions": [
{
"status": "affected",
"version": "\u003c 1.2.1-beta8"
},
{
"status": "affected",
"version": "\u003e= 1.3.0-beta9, \u003c 1.5.1-beta11"
},
{
"status": "affected",
"version": "\u003e= 1.6.0-beta12, \u003c 1.11.8-beta19"
},
{
"status": "affected",
"version": "\u003e= 1.12.1-beta21, \u003c 1.16.3-beta26"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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\u0027 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."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "LOW",
"baseScore": 7.6,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "LOW",
"privilegesRequired": "LOW",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-89",
"description": "CWE-89: Improper Neutralization of Special Elements used in an SQL Command (\u0027SQL Injection\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-07-10T20:33:40.804Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/langchain4j/langchain4j/security/advisories/GHSA-2mfg-cc43-9pcj",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/langchain4j/langchain4j/security/advisories/GHSA-2mfg-cc43-9pcj"
},
{
"name": "https://github.com/langchain4j/langchain4j/commit/13a0698bdfaf105d8aaf0367881df51358596219",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/langchain4j/langchain4j/commit/13a0698bdfaf105d8aaf0367881df51358596219"
},
{
"name": "https://github.com/langchain4j/langchain4j/commit/1bc1f60aa58ef5c3c1703caf73362482480351cf",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/langchain4j/langchain4j/commit/1bc1f60aa58ef5c3c1703caf73362482480351cf"
},
{
"name": "https://github.com/langchain4j/langchain4j/commit/8805d5d128694302f1b0a2650174186862f669e7",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/langchain4j/langchain4j/commit/8805d5d128694302f1b0a2650174186862f669e7"
},
{
"name": "https://github.com/langchain4j/langchain4j/commit/ce96291dfb243c7f6753b5d65c7a77914642314f",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/langchain4j/langchain4j/commit/ce96291dfb243c7f6753b5d65c7a77914642314f"
},
{
"name": "https://github.com/langchain4j/langchain4j/commit/f14a10ce77e4ea1b8277f67d6a81f46abd7a5bc2",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/langchain4j/langchain4j/commit/f14a10ce77e4ea1b8277f67d6a81f46abd7a5bc2"
},
{
"name": "https://github.com/langchain4j/langchain4j/releases/tag/1.16.3",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/langchain4j/langchain4j/releases/tag/1.16.3"
}
],
"source": {
"advisory": "GHSA-2mfg-cc43-9pcj",
"discovery": "UNKNOWN"
},
"title": "LangChain4j: SQL injection via metadata filters in langchain4j-mariadb and langchain4j-pgvector"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-55405",
"datePublished": "2026-07-10T20:33:40.804Z",
"dateReserved": "2026-06-16T21:48:43.124Z",
"dateUpdated": "2026-07-10T20:33:40.804Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-55405",
"date": "2026-07-11",
"epss": "0.00348",
"percentile": "0.26881"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-55405\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2026-07-10T21:16:55.977\",\"lastModified\":\"2026-07-10T21:16:55.977\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"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\u0027 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.\"}],\"affected\":[{\"source\":\"security-advisories@github.com\",\"affectedData\":[{\"vendor\":\"langchain4j\",\"product\":\"langchain4j\",\"versions\":[{\"version\":\"\u003c 1.2.1-beta8\",\"status\":\"affected\"},{\"version\":\"\u003e= 1.3.0-beta9, \u003c 1.5.1-beta11\",\"status\":\"affected\"},{\"version\":\"\u003e= 1.6.0-beta12, \u003c 1.11.8-beta19\",\"status\":\"affected\"},{\"version\":\"\u003e= 1.12.1-beta21, \u003c 1.16.3-beta26\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L\",\"baseScore\":7.6,\"baseSeverity\":\"HIGH\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"LOW\",\"availabilityImpact\":\"LOW\"},\"exploitabilityScore\":2.8,\"impactScore\":4.7}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-89\"}]}],\"references\":[{\"url\":\"https://github.com/langchain4j/langchain4j/commit/13a0698bdfaf105d8aaf0367881df51358596219\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/langchain4j/langchain4j/commit/1bc1f60aa58ef5c3c1703caf73362482480351cf\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/langchain4j/langchain4j/commit/8805d5d128694302f1b0a2650174186862f669e7\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/langchain4j/langchain4j/commit/ce96291dfb243c7f6753b5d65c7a77914642314f\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/langchain4j/langchain4j/commit/f14a10ce77e4ea1b8277f67d6a81f46abd7a5bc2\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/langchain4j/langchain4j/releases/tag/1.16.3\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/langchain4j/langchain4j/security/advisories/GHSA-2mfg-cc43-9pcj\",\"source\":\"security-advisories@github.com\"}]}}"
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…