smol-toml — небольшой, быстрый и правильный анализатор и сериализатор TOML. До версии 1.7.1 функция parse() могла войти в бесконечный цикл, когда за значением внутри массива или встроенной таблицы следует комментарий без завершающего символа новой строки. В src/util.ts SkipUntil() вызывает indexOfNewline(), получает -1 в конце ввода и сбрасывает курсор в начало строки вместо выхода из сканирования структуры.
Затем анализатор зависает на неопределенный срок и может потреблять вычислительную мощность службы, когда приложение анализирует TOML, контролируемый злоумышленником. Эта проблема исправлена в версии 1.7.1.
Показать оригинальное описание (EN)
smol-toml is a small, fast, and correct TOML parser and serializer. Prior to 1.7.1, parse() can enter an infinite loop when a value inside an array or inline table is followed by a comment with no trailing newline. In src/util.ts, skipUntil() calls indexOfNewline(), receives -1 at the end of input, and resets the cursor to the beginning of the string instead of leaving the structure scan. The parser then hangs indefinitely and can consume a service's processing capacity when an application parses attacker-controlled TOML. This issue is fixed in version 1.7.1.
Характеристики атаки
Последствия
Строка CVSS v4.0