Alta

markdown-it: Complejidad cuadrática en smartquotes con comillas de cierre no coincidentes

  • Publicada: 20.10.2026
  • Actualizado: 20.10.2026 18:18

Impacto

Cuando typographer: true está habilitado, Markdown especialmente diseñado puede causar un tiempo de procesamiento cuadrático en la regla smartquotes, lo que potencialmente conduce a una denegación de servicio en aplicaciones que procesan entradas no confiables.

Muchas comillas dobles de apertura seguidas de comillas simples de cierre no coincidentes provocan escaneos repetidos de toda la pila de aperturas. El mismo problema ocurre si se invierten los tipos de comillas.

La configuración predeterminada (typographer: false) no se ve afectada, pero existe una alta probabilidad de que esta opción esté habilitada.

Reproducción

js
import MarkdownIt from 'markdown-it'
import { performance } from 'node:perf_hooks'

const md = new MarkdownIt({ typographer: true })

for (const k of [2000, 4000, 8000, 16000, 32000]) {
  const input = '"a '.repeat(k) + "b' ".repeat(k)
  const start = performance.now()
  md.render(input)
  console.log(input.length, (performance.now() - start).toFixed(1), 'ms')
}

Resultado:

input size time
12000 18ms
24000 47ms
48000 115ms
96000 428ms
192000 1586ms

Parches

Corregido en 15.0.2 y 14.3.2.

Mitigaciones

Deshabilite la tipografía con typographer: false, o deshabilite únicamente la regla smartquotes:

js
md.disable('smartquotes')

Qué hacer

Actualice a 15.0.2, 14.3.2 o versiones posteriores. Si no es posible actualizar de inmediato, deshabilite la tipografía con typographer: false o desactive únicamente la regla smartquotes.

Software afectado

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

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de npm markdown-it >= 15.0.0, < 15.0.2, < 14.3.2 15.0.2, 14.3.2

Referencias

Puntuación CVSS 7.5/10
Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Debilidad (CWE)
CWE-400, CWE-407
Plataforma
npm
Paquete
markdown-it
Publicada
20.10.2026
Actualizado
20.10.2026 18:18

Fuentes y licencias · Editado o traducido por DockRay; se mantienen los derechos y las licencias de las fuentes.

OSV / GitHub Advisory Database - GHSA-r7fv-28h4-cvq7 - CC BY 4.0

Historial de vulnerabilidades: markdown-it

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.

Entradas en total
8
Primera → última
01.2022 10.2026
Sin corrección
0
Explotada en ataques
0

Distribución por gravedad

  • Alta 3
  • Media 4
  • Baja 1

Divulgaciones por año

  1. 2022: 2
  2. 2023: 0
  3. 2024: 0
  4. 2025: 0
  5. 2026: 6
  1. Baja · 3.7 CVE-2026-111766 < 14.3.3, >= 15.0.0, < 15.0.3 14.3.3, 15.0.3
  2. markdown-it: Complejidad cuadrática en smartquotes con comillas de cierre no coincidentes esta entrada
    Alta · 7.5 CVE-2026-111759 >= 15.0.0, < 15.0.2, < 14.3.2 15.0.2, 14.3.2
  3. Media · 5.3 CVE-2026-2327 >= 13.0.0, < 14.1.1 14.1.1
  4. Media · 5.3 CVE-2022-21670 < 12.3.2 12.3.2

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.