Read the docs
TI-2026-28344 Aliases CVE-2026-39356GHSA-gpj5-g38j-94v9

SQL Injection via escapeName() in all Drizzle ORM SQL dialects

Priority LOW 39CWE-89Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
SQL injection
Confidentiality · integrity · availability
High · None · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-89.

Summary

Drizzle is a modern TypeScript ORM. Prior to 0.45.2 and 1.0.0-beta.20, Drizzle ORM improperly escaped quoted SQL identifiers in its dialect-specific escapeName() implementations. In affected versions, embedded identifier delimiters were not escaped before the identifier was wrapped in quotes or backticks. As a result, applications that pass attacker-controlled input to APIs that construct SQL identifiers or aliases, such as sql.identifier(), .as(), may allow an attacker to terminate the quoted identifier and inject SQL. This vulnerability is fixed in 0.45.2 and 1.0.0-beta.20.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00399 34th percentileScored 2026-11-07
Fix Fixed drizzle-orm (drizzle-team): 0.45.2, 1.0.0-beta.20drizzle-orm (npm): 0.45.2, 1.0.0-beta.20

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
drizzle-teamdrizzle-ormbefore 0.45.2; 1.0.0-beta.2 to before 1.0.0-beta.200.45.2, 1.0.0-beta.20Patch availableCNA
—drizzle-orm (npm)before 0.45.20.45.2Patch availableGHSA-gpj5-g38j-94v9
—drizzle-orm (npm)1.0.0-beta.2 to before 1.0.0-beta.201.0.0-beta.20Patch availableGHSA-gpj5-g38j-94v9
  • drizzle-orm Vendordrizzle-team Affected before 0.45.2; 1.0.0-beta.2 to before 1.0.0-beta.20 Fixed in 0.45.2, 1.0.0-beta.20 Patch available CNA
  • drizzle-orm (npm) Vendor— Affected before 0.45.2 Fixed in 0.45.2 Patch available GHSA-gpj5-g38j-94v9
  • drizzle-orm (npm) Vendor— Affected 1.0.0-beta.2 to before 1.0.0-beta.20 Fixed in 1.0.0-beta.20 Patch available GHSA-gpj5-g38j-94v9

CPE configurations NVD · 19

CPEVersionsRoleVendor
cpe:2.3:a:drizzle:drizzle:*:*:*:*:*:node.js:*:*before 0.45.2VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta1:*:*:*:node.js:*:*1.0.0 beta1VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta11:*:*:*:node.js:*:*1.0.0 beta11VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta12:*:*:*:node.js:*:*1.0.0 beta12VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta13:*:*:*:node.js:*:*1.0.0 beta13VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta14:*:*:*:node.js:*:*1.0.0 beta14VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta15:*:*:*:node.js:*:*1.0.0 beta15VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta16:*:*:*:node.js:*:*1.0.0 beta16VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta17:*:*:*:node.js:*:*1.0.0 beta17VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta18:*:*:*:node.js:*:*1.0.0 beta18VulnerableDrizzle
  • cpe:2.3:a:drizzle:drizzle:*:*:*:*:*:node.js:*:* Versions before 0.45.2 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta1:*:*:*:node.js:*:* Versions 1.0.0 beta1 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta11:*:*:*:node.js:*:* Versions 1.0.0 beta11 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta12:*:*:*:node.js:*:* Versions 1.0.0 beta12 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta13:*:*:*:node.js:*:* Versions 1.0.0 beta13 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta14:*:*:*:node.js:*:* Versions 1.0.0 beta14 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta15:*:*:*:node.js:*:* Versions 1.0.0 beta15 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta16:*:*:*:node.js:*:* Versions 1.0.0 beta16 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta17:*:*:*:node.js:*:* Versions 1.0.0 beta17 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta18:*:*:*:node.js:*:* Versions 1.0.0 beta18 Vulnerable ·Drizzle
Show 9 more CPE
CPEVersionsRoleVendor
cpe:2.3:a:drizzle:drizzle:1.0.0:beta19:*:*:*:node.js:*:*1.0.0 beta19VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta2:*:*:*:node.js:*:*1.0.0 beta2VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta3:*:*:*:node.js:*:*1.0.0 beta3VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta4:*:*:*:node.js:*:*1.0.0 beta4VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta5:*:*:*:node.js:*:*1.0.0 beta5VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta6:*:*:*:node.js:*:*1.0.0 beta6VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta7:*:*:*:node.js:*:*1.0.0 beta7VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta8:*:*:*:node.js:*:*1.0.0 beta8VulnerableDrizzle
cpe:2.3:a:drizzle:drizzle:1.0.0:beta9:*:*:*:node.js:*:*1.0.0 beta9VulnerableDrizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta19:*:*:*:node.js:*:* Versions 1.0.0 beta19 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta2:*:*:*:node.js:*:* Versions 1.0.0 beta2 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta3:*:*:*:node.js:*:* Versions 1.0.0 beta3 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta4:*:*:*:node.js:*:* Versions 1.0.0 beta4 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta5:*:*:*:node.js:*:* Versions 1.0.0 beta5 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta6:*:*:*:node.js:*:* Versions 1.0.0 beta6 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta7:*:*:*:node.js:*:* Versions 1.0.0 beta7 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta8:*:*:*:node.js:*:* Versions 1.0.0 beta8 Vulnerable ·Drizzle
  • cpe:2.3:a:drizzle:drizzle:1.0.0:beta9:*:*:*:node.js:*:* Versions 1.0.0 beta9 Vulnerable ·Drizzle

Remediation

  • Fix · CNA drizzle-orm (drizzle-team) Fixed in 0.45.2, 1.0.0-beta.20
  • Fix · GHSA-gpj5-g38j-94v9 drizzle-orm (npm) Fixed in 0.45.2 Advisory →
  • Fix · GHSA-gpj5-g38j-94v9 drizzle-orm (npm) Fixed in 1.0.0-beta.20 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-39356
  2. 2026-10-03 Alias added: GHSA-gpj5-g38j-94v9

References

Sources