Hoch

markdown-it: Quadratische Komplexität in smartquotes bei nicht übereinstimmenden schließenden Anführungszeichen

  • Veröffentlicht: 20.10.2026
  • Aktualisiert: 20.10.2026 18:18

Auswirkungen

Wenn typographer: true aktiviert ist, kann speziell gestaltetes Markdown zu einer quadratischen Verarbeitungszeit in der smartquotes-Regel führen. Dies kann potenziell einen Denial-of-Service (DoS) in Anwendungen verursachen, die nicht vertrauenswürdige Eingaben verarbeiten.

Viele öffnende doppelte Anführungszeichen gefolgt von nicht übereinstimmenden schließenden einfachen Anführungszeichen führen zu wiederholten Durchläufen des gesamten Öffner-Stacks. Dasselbe Problem tritt auf, wenn die Typen der Anführungszeichen vertauscht sind.

Die Standardkonfiguration (typographer: false) ist nicht betroffen, diese Option wird jedoch mit hoher Wahrscheinlichkeit aktiviert.

Reproduktion

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')
}

Ergebnis:

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

Patches

Behoben in 15.0.2 und 14.3.2.

Problemumgehungen

Deaktivieren Sie Typografie mit typographer: false oder deaktivieren Sie ausschließlich die smartquotes-Regel:

js
md.disable('smartquotes')

Was zu tun ist

Aktualisieren Sie auf 15.0.2, 14.3.2 oder neuere Versionen. Falls ein Update nicht sofort möglich ist, deaktivieren Sie die Typografie über typographer: false oder deaktivieren Sie die smartquotes-Regel wie in der Problemumgehung beschrieben.

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
npm-Paket markdown-it >= 15.0.0, < 15.0.2, < 14.3.2 15.0.2, 14.3.2

Verweise

CVSS-Wert 7.5/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Schwäche (CWE)
CWE-400, CWE-407
Plattform
npm
Paket
markdown-it
Veröffentlicht
20.10.2026
Aktualisiert
20.10.2026 18:18

Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.

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

Schwachstellenhistorie: markdown-it

Alle veröffentlichten Schwachstellen dieses Pakets (npm-Paket), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Einträge insgesamt
8
Erste → letzte
01.2022 10.2026
Ohne Fix
0
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Hoch 3
  • Mittel 4
  • Niedrig 1

Veröffentlichungen pro Jahr

  1. 2022: 2
  2. 2023: 0
  3. 2024: 0
  4. 2025: 0
  5. 2026: 6
  1. Niedrig · 3.7 CVE-2026-111766 < 14.3.3, >= 15.0.0, < 15.0.3 14.3.3, 15.0.3
  2. markdown-it: Quadratische Komplexität in smartquotes bei nicht übereinstimmenden schließenden Anführungszeichen dieser Eintrag
    Hoch · 7.5 CVE-2026-111759 >= 15.0.0, < 15.0.2, < 14.3.2 15.0.2, 14.3.2
  3. Mittel · 5.3 CVE-2026-2327 >= 13.0.0, < 14.1.1 14.1.1
  4. Mittel · 5.3 CVE-2022-21670 < 12.3.2 12.3.2

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.