версии League/commonmark >= 2.0.0 и < 2.8.4 (исправлено в версии 2.9.0) содержат уязвимость типа «отказ в обслуживании» в UniqueSlugNormalizer::normalize(), которая перезапускает поиск числового суффикса с 1 при каждом столкновении фрагментов, что приводит к временной сложности O(K^2) для K заголовков, которые схлопываются в один и тот же базовый фрагмент. Уязвимый путь достигается при регистрации HeadingPermalinkExtension, FootnoteExtension или TableOfContentsExtension. Злоумышленник, не прошедший проверку подлинности, может принудительно разместить множество заголовков в одном базовом фрагменте (например, с помощью пустых заголовков ATX, идентичного текста заголовка или заголовков, содержащих только знаки препинания) в небольшом документе Markdown, чрезмерно потребляя ресурсы ЦП и отказывая в обслуживании.
Показать оригинальное описание (EN)
league/commonmark versions >= 2.0.0 and < 2.8.4 (patched in 2.9.0) contain a denial of service vulnerability in UniqueSlugNormalizer::normalize(), which restarts its numeric-suffix search from 1 on every slug collision, resulting in O(K^2) time complexity for K headings that collapse to the same base slug. The vulnerable path is reached when HeadingPermalinkExtension, FootnoteExtension, or TableOfContentsExtension is registered. An unauthenticated attacker can force many headings onto a single base slug (e.g., via empty ATX headings, identical heading text, or punctuation-only headings) in a small Markdown document, consuming excessive CPU and denying service.
Характеристики атаки
Последствия
Строка CVSS v4.0