Kysely is a type-safe TypeScript SQL query builder. Versions up to and including 0.28.11 has a SQL injection vulnerability in JSON path compilation for MySQL and SQLite dialects. The `visitJSONPathLeg()` function appends user-controlled values from `.key()` and `.at()` directly into single-quoted JSON path string literals (`'$.key'`) without escaping single quotes. An attacker can break out of the JSON path string context and inject arbitrary SQL. This is inconsistent with `sanitizeIdentifier()`, which properly doubles delimiter characters for identifiers — both are non-parameterizable SQL constructs requiring manual escaping, but only identifiers are protected. Version 0.28.12 fixes the issue.
Metrics
Affected Vendors & Products
References
History
Fri, 20 Mar 2026 09:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Kysely-org
Kysely-org kysely |
|
| Vendors & Products |
Kysely-org
Kysely-org kysely |
Thu, 19 Mar 2026 23:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Kysely is a type-safe TypeScript SQL query builder. Versions up to and including 0.28.11 has a SQL injection vulnerability in JSON path compilation for MySQL and SQLite dialects. The `visitJSONPathLeg()` function appends user-controlled values from `.key()` and `.at()` directly into single-quoted JSON path string literals (`'$.key'`) without escaping single quotes. An attacker can break out of the JSON path string context and inject arbitrary SQL. This is inconsistent with `sanitizeIdentifier()`, which properly doubles delimiter characters for identifiers — both are non-parameterizable SQL constructs requiring manual escaping, but only identifiers are protected. Version 0.28.12 fixes the issue. | |
| Title | SQL Injection via unsanitized JSON path keys when ignoring/silencing compilation errors or using `Kysely<any>`. | |
| Weaknesses | CWE-89 | |
| References |
| |
| Metrics |
cvssV3_1
|
Status: PUBLISHED
Assigner: GitHub_M
Published: 2026-03-19T23:14:58.747Z
Updated: 2026-03-19T23:14:58.747Z
Reserved: 2026-03-13T18:53:03.533Z
Link: CVE-2026-32763
No data.
Status : Awaiting Analysis
Published: 2026-03-20T00:16:17.790
Modified: 2026-03-20T13:37:50.737
Link: CVE-2026-32763
No data.
ReportizFlow