Description
MikroORM is a TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Prior to @mikro-orm/knex 6.6.14 and @mikro-orm/sql 7.0.14, MikroORM's identifier-quoting helper (Platform.quoteIdentifier and the postgres/mssql overrides) and its JSON-path emitters (Platform.getSearchJsonPropertyKey, quoteJsonKey) did not properly escape characters that delimit the SQL identifier or string-literal context they emit into. When application code passes attacker-influenced strings to public ORM APIs that expect an identifier or a JSON-property filter, an attacker can break out of the quoted context and inject arbitrary SQL. This vulnerability is fixed in @mikro-orm/knex 6.6.14 and @mikro-orm/sql 7.0.14.
CVSS breakdown
CVSS 3.1
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
Low
Availability
Low
Affected products
- mikro-orm / knex< 6.6.14 – < 6.6.14
- mikro-orm / mikro-orm>= 7.0.0-rc.0, < 7.0.14 – >= 7.0.0-rc.0, < 7.0.14
- mikro-orm / mikro-orm< 6.6.14 – < 6.6.14
- mikro-orm / sql< 7.0.14 – < 7.0.14
Exploits & proofs of concept
- exploit-dbMikroORM 7.0.13 - SQL Injectionby cardosource
References
- VENDOR_ADVISORYhttps://github.com/mikro-orm/mikro-orm/security/advisories/GHSA-cfw5-68c4-ffqp
- PATCHhttps://github.com/mikro-orm/mikro-orm/pull/7653
- PATCHhttps://github.com/mikro-orm/mikro-orm/pull/7654
- PATCHhttps://github.com/mikro-orm/mikro-orm/pull/7656
- PATCHhttps://github.com/mikro-orm/mikro-orm/pull/7657
Updated 14m ago · 8 sources