CVE-2026-76848
Last modified
CVE-2026-76848 is a high-severity vulnerability rated 7.5/10 on the CVSS scale. TypeORM's SelectQueryBuilder.distinctOn accepts an array of strings and stores it on the expression map without validation. For PostgreSQL-family drivers, createSelectDistinctExpression in src/query-builder/SelectQueryBuilder.ts joins that array and interpolates the result into the generated statement as SELECT DISTINCT ON (values), with no escaping, quoting, identifier validation or allowlist, and without routing the values through replacePropertyNames or the driver's escape helper.
Description
TypeORM's SelectQueryBuilder.distinctOn accepts an array of strings and stores it on the expression map without validation. For PostgreSQL-family drivers, createSelectDistinctExpression in src/query-builder/SelectQueryBuilder.ts joins that array and interpolates the result into the generated statement as SELECT DISTINCT ON (values), with no escaping, quoting, identifier validation or allowlist, and without routing the values through replacePropertyNames or the driver's escape helper. Because the interpolation point is a parenthesized SQL expression list rather than an identifier-only position, a supplied element may carry arbitrary expressions, including correlated subqueries. An application that forwards a client-controlled value into distinctOn, for instance to let a caller choose a deduplication column, allows that client to read data anywhere the application's database role can reach through boolean or time-based inference, independently of the entity being queried. validateOrderByCondition, the allowlist check guarding the orderBy family in the same class, is not applied to this path.
Metrics
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| typeorm | typeorm | >= 0.2.21, <= 1.1.0 |
References
Timeline
- Published
- Last Modified
- Status
- Received
Frequently Asked Questions
What is CVE-2026-76848?
How severe is CVE-2026-76848?
How do I fix CVE-2026-76848?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-76842The Mercado Pago Node.js SDK interpolates caller-supplied id…8.2
- CVE-2026-76843The official Flair wheels for 0.15.0 and 0.15.1 still contai…7.8
- CVE-2026-76844webpack-dev-middleware resolves a request to a local file in…7.4
- CVE-2026-76845adm-zip 0.5.9 through 0.6.0 follows symbolic links at the ex…6.5
- CVE-2026-76846Grav before 2.0.16 contains an incomplete default denylist i…7.5
- CVE-2026-76847act starts an HTTP Artifacts V4 backend whenever a workflow …8.8
- CVE-2026-7685A vulnerability was detected in Edimax BR-6208AC up to 1.02.…8.8
- CVE-2026-76850LMDeploy deserializes disaggregated-serving peer messages wi…9.8
- CVE-2026-7686A vulnerability was found in eyeo Adblock Plus up to 4.36.2 …5.5
- CVE-2026-7687A vulnerability was determined in langflow-ai langflow up to…6.3
- CVE-2026-76876Craftplan before 0.5.1 contains a broken access control vuln…5.9
- CVE-2026-76878In OpenStack Aodh before 22.0.1, the alarm list API bypasses…8.4
Are you affected by CVE-2026-76848?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
