flawopen.com/SQL Injection in JavaScript/TypeORM
Yes for standard repository methods and its parameterized QueryBuilder conditions. Its query() raw-SQL method and unparameterized where() string arguments are the risk points.
userRepo.createQueryBuilder("u")
.where(`u.id = ${userId}`)
.getOne()userRepo.createQueryBuilder("u")
.where("u.id = :id", { id: userId })
.getOne()TypeORM's QueryBuilder.where() accepts a condition string with named placeholders (:id) plus a separate parameters object — that form is parameterized. Passing a template-literal-interpolated string directly as the condition bypasses parameterization entirely, identical to the same mistake in Knex or Sequelize.
grep -rn "\.where(\`\|\.query(\`" --include="*.ts" . | grep '\${'Yes — they build parameterized queries internally regardless of the value's content.