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.
References
| Link | Resource |
|---|---|
| https://github.com/kysely-org/kysely/commit/0a602bff2f442f6c26d5e047ca8f8715179f6d24 | Patch |
| https://github.com/kysely-org/kysely/releases/tag/v0.28.12 | Release Notes |
| https://github.com/kysely-org/kysely/security/advisories/GHSA-wmrf-hv6w-mr66 | Exploit Mitigation Vendor Advisory |
Configurations
History
No history.
Information
Published : 2026-03-20 00:16
Updated : 2026-06-17 10:36
NVD link : CVE-2026-32763
Mitre link : CVE-2026-32763
CVE.ORG link : CVE-2026-32763
JSON object : View
Products Affected
kysely
- kysely
CWE
CWE-89
Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
