Ad

CVE-2026-71847

HIGH CVSS 4.0: 8,7 EPSS 0.25%
Обновлено 8 августа 2026
Ruby
Параметр Значение
CVSS 8,7 (HIGH)
Устранено в версии 2.21.2
Тип уязвимости CWE-416 (Использование памяти после освобождения)
Поставщик Ruby
Публичный эксплойт Нет

Ruby JSON — это реализация JSON для Ruby. С версий 2.20.0 до 2.21.2 собственное расширение Ruby JSON C очищает использованный входной буфер JSON::ResumableParser, но оставляет state.start, state.cursor и state.end, указывающие на освобожденное хранилище. Когда частичный_значение реконструирует неполный объект, содержащий повторяющиеся ключи, путь предупреждения о дублирующихся ключах вызывает курсор_позиции, который разыменовывает эти устаревшие указатели.

Это приводит к использованию кучи после освобождения и может завершить процесс Ruby. Злоумышленник, который может предоставить данные потока JSON приложению с помощью JSON::ResumableParser, может вызвать завершение процесса, когда приложение вызывает частичный_значение для неполных входных данных, контролируемых злоумышленником, содержащих повторяющиеся ключи объекта. Эта проблема исправлена ​​в версии 2.21.2.

Показать оригинальное описание (EN)

Ruby JSON is a JSON implementation for Ruby. From 2.20.0 until 2.21.2, Ruby's JSON native C extension clears the consumed JSON::ResumableParser input buffer but leaves state.start, state.cursor, and state.end pointing into released storage. When partial_value reconstructs an incomplete object containing duplicate keys, the duplicate-key warning path calls cursor_position, which dereferences those stale pointers. This results in a heap-use-after-free and can terminate the Ruby process. An attacker who can supply JSON stream data to an application using JSON::ResumableParser may cause process termination when the application calls partial_value on incomplete attacker-controlled input containing duplicate object keys. This issue has been fixed in version 2.21.2.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Условия для атаки
Не требуются
Нет дополнительных условий
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Нет
Нет утечки данных
Целостность
Нет
Нет модификации данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v4.0

Уязвимые продукты

ruby:json