GHSA-2mfg-cc43-9pcj

Suggest an improvement
Source
https://github.com/advisories/GHSA-2mfg-cc43-9pcj
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-2mfg-cc43-9pcj/GHSA-2mfg-cc43-9pcj.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-2mfg-cc43-9pcj
Aliases
  • CVE-2026-55405
Published
2026-06-17T18:39:56Z
Modified
2026-06-17T18:45:31.913100575Z
Severity
  • 7.6 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L CVSS Calculator
Summary
LangChain4j: SQL injection via metadata filters in langchain4j-mariadb and langchain4j-pgvector
Details

Summary

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.

Details

pgvector — JSON mode (default, COMBINED_JSON / COMBINED_JSONB). JSONFilterMapper places the key inside a single-quoted SQL literal (the JSON key of the ->> operator) with no escaping:

(metadata->>'<key>')::text

A key containing a single quote breaks out, e.g. metadataKey("')::text IS NOT NULL OR pg_sleep(1) IS NOT NULL --") injects a live pg_sleep(1) (observable as a delay; exploitable for blind data extraction).

pgvector — column mode (COLUMN_PER_KEY). ColumnFilterMapper used the key as a bare, unquoted, unvalidated SQL identifier (<key>::<type>), so a key such as 1=1 OR true -- injects directly.

MariaDB — JSON mode (default). JSONFilterMapper placed the key inside the JSON path literal '$.<key>' unescaped (same break-out mechanism). Additionally, MariaDbFilterMapper.formatValue() escaped ' but not \; because MariaDB treats backslash as an escape character by default, a string value ending in a backslash could also break out of its literal.

MariaDB — column mode (COLUMN_PER_KEY). ColumnFilterMapper fell back to the raw, unescaped key when the driver could not quote it as an identifier (e.g. a character).

The filter key is the runtime injection surface; both stores' search() (including pgvector's HYBRID mode) and removeAll(Filter) are affected. Add/upsert operations a parameterized and not affected.

Impact

Applications that allow attacker-influenced metadata filter keys (e.g. use LLM-generated filters) to reach these stores are exposed to SQL injection: blind data exfiltration, denial of service via sleep functions, and — through `remove deletion of arbitrary rows. Applications using only hard-coded, developer-defined filter keys are not reachable.

Patches

Fixed in langchain4j-mariadb and langchain4j-pgvector 1.16.3-beta26: - JSON filter keys are escaped before being embedded in the SQL string lit quotes doubled, correct for PostgreSQL standard_conforming_strings = on; MariaDB: backslash and single quote). - MariaDB string values escape both \ and '. - Column-mode keys are validated/quoted as identifiers and rejected when u concatenated as raw SQL.

Workarounds

  • Do not pass untrusted input as metadata filter keys.
  • Restrict filter keys to a known allow-list at the application layer.

References

  • pgvector: JSONFilterMapper, ColumnFilterMapper
  • MariaDB: JSONFilterMapper, MariaDbFilterMapper, ColumnFilterMapper
Database specific
{
    "github_reviewed": true,
    "github_reviewed_at": "2026-06-17T18:39:56Z",
    "nvd_published_at": null,
    "severity": "HIGH",
    "cwe_ids": [
        "CWE-89"
    ]
}
References

Affected packages

Maven
dev.langchain4j:langchain4j-mariadb

Package

Name
dev.langchain4j:langchain4j-mariadb
View open source insights on deps.dev
Purl
pkg:maven/dev.langchain4j/langchain4j-mariadb

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
1.2.1-beta8

Affected versions

0.*
0.0.002-test-beta2
0.0.6-test-beta6
0.0.7-test-beta7
0.0.9-test-beta9
0.0.11-test-beta11
1.*
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-beta5
1.0.1-beta6
1.1.0-beta7
1.2.0-beta8

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-2mfg-cc43-9pcj/GHSA-2mfg-cc43-9pcj.json"
last_known_affected_version_range
"<= 1.2.0-beta8"
dev.langchain4j:langchain4j-mariadb

Package

Name
dev.langchain4j:langchain4j-mariadb
View open source insights on deps.dev
Purl
pkg:maven/dev.langchain4j/langchain4j-mariadb

Affected ranges

Type
ECOSYSTEM
Events
Introduced
1.3.0-beta9
Fixed
1.5.1-beta11

Affected versions

1.*
1.3.0-beta9
1.4.0-beta10
1.5.0-beta11

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-2mfg-cc43-9pcj/GHSA-2mfg-cc43-9pcj.json"
last_known_affected_version_range
"<= 1.5.0-beta11"
dev.langchain4j:langchain4j-mariadb

Package

Name
dev.langchain4j:langchain4j-mariadb
View open source insights on deps.dev
Purl
pkg:maven/dev.langchain4j/langchain4j-mariadb

Affected ranges

Type
ECOSYSTEM
Events
Introduced
1.6.0-beta12
Fixed
1.11.8-beta19

Affected versions

1.*
1.6.0-beta12
1.7.0-beta13
1.7.1-beta14
1.8.0-beta15
1.9.0-beta16
1.9.1-beta17
1.10.0-beta18
1.11.0-beta19
1.11.4-beta19
1.11.5-beta19
1.11.6-beta19
1.11.7-beta19

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-2mfg-cc43-9pcj/GHSA-2mfg-cc43-9pcj.json"
last_known_affected_version_range
"<= 1.11.7-beta19"
dev.langchain4j:langchain4j-mariadb

Package

Name
dev.langchain4j:langchain4j-mariadb
View open source insights on deps.dev
Purl
pkg:maven/dev.langchain4j/langchain4j-mariadb

Affected ranges

Type
ECOSYSTEM
Events
Introduced
1.12.1-beta21
Fixed
1.16.3-beta26

Affected versions

1.*
1.12.1-beta21
1.12.2-beta22
1.13.0-beta23
1.13.1-beta23
1.14.0-beta24
1.14.1-beta24
1.15.0-beta25
1.15.1-beta25
1.16.0-beta26
1.16.1-beta26
1.16.2-beta26

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-2mfg-cc43-9pcj/GHSA-2mfg-cc43-9pcj.json"
last_known_affected_version_range
"<= 1.16.2-beta26"
dev.langchain4j:langchain4j-pgvector

Package

Name
dev.langchain4j:langchain4j-pgvector
View open source insights on deps.dev
Purl
pkg:maven/dev.langchain4j/langchain4j-pgvector

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
1.2.1-beta8

Affected versions

0.*
0.0.002-test-beta2
0.0.6-test-beta6
0.0.7-test-beta7
0.0.9-test-beta9
0.0.11-test-beta11
0.24.0
0.25.0
0.26.0
0.26.1
0.27.0
0.27.1
0.28.0
0.29.0
0.29.1
0.30.0
0.31.0
0.32.0
0.33.0
0.34.0
0.35.0
0.36.0
0.36.1
0.36.2
1.*
1.0.0-alpha1
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-beta5
1.0.1-beta6
1.1.0-beta7
1.2.0-beta8

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-2mfg-cc43-9pcj/GHSA-2mfg-cc43-9pcj.json"
last_known_affected_version_range
"<= 1.2.0-beta8"
dev.langchain4j:langchain4j-pgvector

Package

Name
dev.langchain4j:langchain4j-pgvector
View open source insights on deps.dev
Purl
pkg:maven/dev.langchain4j/langchain4j-pgvector

Affected ranges

Type
ECOSYSTEM
Events
Introduced
1.3.0-beta9
Fixed
1.5.1-beta11

Affected versions

1.*
1.3.0-beta9
1.4.0-beta10
1.5.0-beta11

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-2mfg-cc43-9pcj/GHSA-2mfg-cc43-9pcj.json"
last_known_affected_version_range
"<= 1.5.0-beta11"
dev.langchain4j:langchain4j-pgvector

Package

Name
dev.langchain4j:langchain4j-pgvector
View open source insights on deps.dev
Purl
pkg:maven/dev.langchain4j/langchain4j-pgvector

Affected ranges

Type
ECOSYSTEM
Events
Introduced
1.6.0-beta12
Fixed
1.11.8-beta19

Affected versions

1.*
1.6.0-beta12
1.7.0-beta13
1.7.1-beta14
1.8.0-beta15
1.9.0-beta16
1.9.1-beta17
1.10.0-beta18
1.11.0-beta19
1.11.4-beta19
1.11.5-beta19
1.11.6-beta19
1.11.7-beta19

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-2mfg-cc43-9pcj/GHSA-2mfg-cc43-9pcj.json"
last_known_affected_version_range
"<= 1.11.7-beta19"
dev.langchain4j:langchain4j-pgvector

Package

Name
dev.langchain4j:langchain4j-pgvector
View open source insights on deps.dev
Purl
pkg:maven/dev.langchain4j/langchain4j-pgvector

Affected ranges

Type
ECOSYSTEM
Events
Introduced
1.12.1-beta21
Fixed
1.16.3-beta26

Affected versions

1.*
1.12.1-beta21
1.12.2-beta22
1.13.0-beta23
1.13.1-beta23
1.14.0-beta24
1.14.1-beta24
1.15.0-beta25
1.15.1-beta25
1.16.0-beta26
1.16.1-beta26
1.16.2-beta26

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-2mfg-cc43-9pcj/GHSA-2mfg-cc43-9pcj.json"
last_known_affected_version_range
"<= 1.16.2-beta26"