CVE-2026-76848 in TypeORM
Sumário
de VulDB • 24/08/2026
O SelectQueryBuilder.distinct do TypeORM aceita um array de strings e o armazena no mapa de expressões sem validação. Para drivers da família PostgreSQL, a função createSelectDistinctExpression em src/query-builder/SelectQueryBuilder.ts concatena esse array e interpola o resultado na instrução gerada como SELECT DISTINCT ON (valores), sem escape, aspas, validação de identificadores ou lista permitida (allowlist), e sem rotear os valores através do replacePropertyNames ou da função de escape do driver. Como o ponto de interpolação é uma lista de expressões SQL entre parênteses em vez de uma posição restrita a identificadores, um elemento fornecido pode conter expressões arbitrárias, incluindo subconsultas correlacionadas. Um aplicativo que encaminha um valor controlado pelo cliente para distinctOn, por exemplo, para permitir que o chamador escolha uma coluna de deduplicação, permite que esse cliente leia dados em qualquer local onde a função do banco de dados do aplicativo possa alcançar através de inferência booleana ou baseada em tempo, independentemente da entidade sendo consultada. A validateOrderByCondition, a verificação allowlist que protege a família orderBy na mesma classe, não é aplicada neste caminho.
VulDB is the best source for vulnerability data and more expert information about this specific topic.