Wysoka

markdown-it: Złożoność kwadratowa w regule smartquotes przy niedopasowanych cudzysłowach zamykających

  • Ujawniono: 20.10.2026
  • Aktualizacja: 20.10.2026 18:18

Wpływ

Gdy włączona jest opcja typographer: true, specjalnie przygotowany kod Markdown może spowodować kwadratowy czas przetwarzania w regule smartquotes, potencjalnie prowadząc do odmowy usługi (DoS) w aplikacjach przetwarzających niezaufane dane wejściowe.

Wiele otwierających cudzysłowów podwójnych, po których następują niedopasowane zamykające cudzysłowy pojedyncze, powoduje wielokrotne skanowanie całego stosu elementów otwierających. Ten sam problem występuje przy odwróceniu typów cudzysłowów.

Domyślna konfiguracja (typographer: false) nie jest podatna, jednak opcja ta jest bardzo często włączana.

Odtworzenie błędu

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

Wynik:

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

Poprawki

Problem rozwiązano w wersjach 15.0.2 oraz 14.3.2.

Obejścia problemu

Wyłącz typografię za pomocą typographer: false lub wyłącz wyłącznie regułę smartquotes:

js
md.disable('smartquotes')

Co trzeba zrobić

Zaktualizuj do wersji 15.0.2, 14.3.2 lub nowszej. Jeśli natychmiastowa aktualizacja nie jest możliwa, zastosuj obejście poprzez wyłączenie typografii za pomocą typographer: false lub wyłącznie reguły smartquotes.

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Paczka npm markdown-it >= 15.0.0, < 15.0.2, < 14.3.2 15.0.2, 14.3.2

Odnośniki

Ocena CVSS 7.5/10
Wektor CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Słabość (CWE)
CWE-400, CWE-407
Platforma
npm
Paczka
markdown-it
Ujawniono
20.10.2026
Aktualizacja
20.10.2026 18:18

Źródła i licencje · Redakcja lub tłumaczenie: DockRay. Zachowano prawa źródeł i obowiązujące licencje.

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

Historia podatności: markdown-it

Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

Wszystkich wpisów
8
Pierwsza → ostatnia
01.2022 10.2026
Bez poprawki
0
Wykorzystywana w atakach
0

Rozkład istotności

  • Wysoka 3
  • Średnia 4
  • Niska 1

Ujawnienia w latach

  1. 2022: 2
  2. 2023: 0
  3. 2024: 0
  4. 2025: 0
  5. 2026: 6
  1. Niska · 3.7 CVE-2026-111766 < 14.3.3, >= 15.0.0, < 15.0.3 14.3.3, 15.0.3
  2. markdown-it: Złożoność kwadratowa w regule smartquotes przy niedopasowanych cudzysłowach zamykających ten wpis
    Wysoka · 7.5 CVE-2026-111759 >= 15.0.0, < 15.0.2, < 14.3.2 15.0.2, 14.3.2
  3. Średnia · 5.3 CVE-2026-2327 >= 13.0.0, < 14.1.1 14.1.1
  4. Wysoka · 7.5 CVE-2015-10005 < 3.0.0 3.0.0
  5. Średnia · 5.3 CVE-2022-21670 < 12.3.2 12.3.2

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.