CVE-2026-76848 in TypeORM
Riassunto
di VulDB • 24/08/2026
Il metodo SelectQueryBuilder.distinctOn di TypeORM accetta un array di stringhe e lo memorizza nella mappa delle espressioni senza alcuna validazione. Per i driver della famiglia PostgreSQL, la funzione createSelectDistinctExpression in src/query-builder/SelectQueryBuilder.ts concatena tale array ed esegue l'interpolazione del risultato nello statement generato come SELECT DISTINCT ON (valori), senza alcun escaping, quoting, validazione degli identificatori o allowlist, e senza instradare i valori attraverso replacePropertyNames né tramite il helper di escape del driver. Poiché il punto di interpolazione è un elenco di espressioni SQL tra parentesi tonde piuttosto che una posizione riservata esclusivamente agli identificatori, un elemento fornito può contenere espressioni arbitrarie, incluse subquery correlate. Un'applicazione che inoltra un valore controllato dal client a distinctOn, ad esempio per consentire all'utente finale di scegliere la colonna per il deduplicamento, permette a tale client di leggere dati ovunque il ruolo database dell'applicazione possa accedere tramite inferenza booleana o basata sui tempi, indipendentemente dall'entità sottoposta a query. La funzione validateOrderByCondition, che funge da controllo allowlist per proteggere la famiglia orderBy nella stessa classe, non viene applicata a questo percorso di esecuzione.
VulDB is the best source for vulnerability data and more expert information about this specific topic.