Crítica

Sequelize vulnerable to SQL Injection via replacements

  • Publicada: 22.02.2023
  • Actualizado: 11.10.2026 10:22

Impact

The SQL injection exploit is related to replacements. Here is such an example:

In the following query, some parameters are passed through replacements, and some are passed directly through the where option.

ts
User.findAll({
  where: or(
    literal('soundex("firstName") = soundex(:firstName)'),
    { lastName: lastName },
  ),
  replacements: { firstName },
})

This is a very legitimate use case, but this query was vulnerable to SQL injection due to how Sequelize processed the query: Sequelize built a first query using the where option, then passed it over to sequelize.query which parsed the resulting SQL to inject all :replacements.

If the user passed values such as

js
{
  "firstName": "OR true; DROP TABLE users;",
  "lastName": ":firstName"
}

Sequelize would first generate this query:

sql
SELECT * FROM users WHERE soundex("firstName") = soundex(:firstName) OR "lastName" = ':firstName'

Then would inject replacements in it, which resulted in this:

sql
SELECT * FROM users WHERE soundex("firstName") = soundex('OR true; DROP TABLE users;') OR "lastName" = ''OR true; DROP TABLE users;''

As you can see this resulted in arbitrary user-provided SQL being executed.

Patches

The issue was fixed in Sequelize 6.19.1

Workarounds

Do not use the replacements and the where option in the same query if you are not using Sequelize >= 6.19.1

References

See this thread for more information: https://github.com/sequelize/sequelize/issues/14519

Snyk: https://security.snyk.io/vuln/SNYK-JS-SEQUELIZE-2932027

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de npm sequelize < 6.19.1 6.19.1

Referencias

Puntuación CVSS 10/10
Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Debilidad (CWE)
CWE-89
Plataforma
npm
Paquete
sequelize
Publicada
22.02.2023
Actualizado
11.10.2026 10:22

Fuentes y licencias

OSV / GitHub Advisory Database - GHSA-wrh9-cjv3-2hpw - CC BY 4.0

Historial de vulnerabilidades: sequelize

Todas las vulnerabilidades publicadas de este paquete (Paquete de npm), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Todas (18) en el archivo
Entradas en total
18
Primera → última
10.2017 08.2026
Sin corrección
0
Explotada en ataques
0

Distribución por gravedad

  • Crítica 8
  • Alta 7
  • Media 3

Divulgaciones por año

  1. 2017: 1
  2. 2018: 0
  3. 2019: 9
  4. 2020: 2
  5. 2021: 0
  6. 2022: 0
  7. 2023: 4
  8. 2024: 0
  9. 2025: 0
  10. 2026: 2
Gravedad:
  1. Crítica · 9.8 CVE-2026-69240 < 6.37.4 6.37.4
  2. Alta · 7.5 CVE-2026-30951 >= 6.0.0-beta.1, < 6.37.8 6.37.8
  3. Crítica · 10.0 CVE-2023-22578 < 6.29.0 6.29.0
  4. Crítica · 9.9 CVE-2023-22579 < 6.28.1 6.28.1
  5. Sequelize vulnerable to SQL Injection via replacements esta entrada
    Crítica · 10.0 CVE-2023-25813 < 6.19.1 6.19.1
  6. Crítica · 9.8 CVE-2016-1000225 >= 3.4.0, < 3.23.6 3.23.6
  7. Crítica · 9.8 CVE-2019-10749 < 3.35.1 3.35.1
  8. Crítica · 9.8 CVE-2019-10748 < 3.35.1, >= 4.0.0, < 4.44.3, >= 5.0.0, < 5.8.11 3.35.1, 4.44.3, 5.8.11
  9. Crítica · 9.8 CVE-2019-10752 < 4.44.3, >= 5.0.0, < 5.15.1 4.44.3, 5.15.1
  10. Alta ghsa-wfp9-vr4j-f49j < 4.12.0 4.12.0
  11. Alta · 7.5 CVE-2019-11069 >= 5.0.0, < 5.3.0 5.3.0
  12. Alta CVE-2016-10550 < 3.17.0 3.17.0
  13. Alta CVE-2016-10553 < 3.0.0 3.0.0
  14. Alta · 7.5 CVE-2016-10556 < 3.20.0 3.20.0
  15. Alta CVE-2015-1369 < 2.0.0-rc8 2.0.0-rc8

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.