CVE: CVE-2026-19873
Продукт: Ubuntu
Дата публикации: 31.08.2026
Критичность: HIGH
CVSS: 7.5 (3.1)
EPSS: 0,52%; процентиль 42,02%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-19873 в пакете
libhtml-formfu-perl позволяет вызвать отказ в обслуживании через неограниченный параметр в строке запроса. Проблема затрагивает все поддерживаемые LTS-релизы Ubuntu, где установлен данный пакет. В материале описаны механика атаки, затронутые версии и способы проверки и исправления.Основные характеристики
Риск представляет собой отказ в обслуживании (DoS) веб-приложений, использующих библиотеку HTML::FormFu. Атакующий может перегрузить сервер, отправив один HTTP-запрос без аутентификации.
- Тип ошибки: CWE-770 (Allocation of Resources Without Limits or Throttling) и CWE-1284 (Improper Validation of Specified Quantity in Input).
- CVSS 3.1: 7.5 (HIGH). Вектор:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H.
- Условия атаки: Сетевой доступ, отсутствие аутентификации, отсутствие пользовательского взаимодействия.
- Эксплуатация: Публичные патчи и обсуждения доступны, подтвержденная эксплуатация в реальных атаках не задокументирована.
- EPSS: 0,52% (процентиль 0,42%).
Какие продукты и версии затронуты
Уязвимость затрагивает пакет
libhtml-formfu-perl в следующих версиях Ubuntu:- Ubuntu 16.04 LTS (xenial): версия пакета
2.01000-2.
- Ubuntu 18.04 LTS (bionic): версия пакета
2.05000-1.
- Ubuntu 20.04 LTS (focal): версия пакета
2.07000-1.
- Ubuntu 22.04 LTS (jammy): версия пакета
2.07000-1.
- Ubuntu 24.04 LTS (noble): версия пакета
2.07000-1.
- Ubuntu 26.04 LTS (resolute): версия пакета
2.07000-2.
Последняя версия на CPAN — 2.07 (2018 г.), версия 2.08 существует только в git-репозитории. Ubuntu классифицирует эту уязвимость как
medium.Причина уязвимости
Причина уязвимости заключается в отсутствии ограничений на количество повторений элементов формы. Когда элемент
Repeatable имеет установленный атрибут counter_name, метод process читает количество повторений из параметра строки запроса.Проверяется только, что значение является положительным целым числом. Затем это значение передается в метод
repeat, который выполняет глубокое клонирование дочернего дерева элементов для каждой итерации. Никакой механизм не ограничивает это значение, и ни один атрибут не позволяет приложению установить лимит.Поскольку чтение происходит при каждом запросе, до того как форма решает, была ли она отправлена, обычный GET-запрос достигает цикла клонирования без необходимости в учетных данных, сессии или теле запроса.
Как работает атака
Атакующий отправляет HTTP-запрос (например, GET) к веб-странице, содержащей форму с элементом
Repeatable, у которого задан counter_name. В строке запроса указывается параметр с большим значением (например, 10000).Библиотека HTML::FormFu читает это значение и начинает клонировать дерево элементов формы. Если элементы вложены (Repeatable внутри Repeatable), количество клонов умножается. Например, внешнее и внутреннее значение 100 приводят к созданию 10 000 клонов.
После отправки формы ограничения (constraints) каждого клонированного поля сканируют все дерево элементов в методе
_find_field_value. Это приводит к нелинейному росту затрат на CPU и памяти. Один такой запрос может исчерпать ресурсы сервера, вызвав отказ в обслуживании.Условия успешной эксплуатации
Для успешной эксплуатации уязвимости необходимы следующие условия:
- В системе установлен пакет
libhtml-formfu-perlв уязвимой версии.
- Веб-приложение использует HTML::FormFu и содержит форму с элементом
Repeatable, у которого задан атрибутcounter_name.
- Атакующий имеет сетевой доступ к веб-интерфейсу, где отображается такая форма.
- Не требуется аутентификация, сессия или отправка тела запроса (достаточно GET-запроса).
Возможный сценарий атаки
Атакующий обнаруживает веб-страницу, использующую HTML::FormFu, и находит параметр в URL, соответствующий
counter_name элемента Repeatable. Он формирует запрос с завышенным значением этого параметра.При обработке запроса библиотека начинает массовое клонирование элементов формы. Если форма сложная или элементы вложены, нагрузка на CPU и память резко возрастает. Сервер начинает медленно отвечать или перестает отвечать, что приводит к отказу в обслуживании для легитимных пользователей.
Поскольку атака не требует аутентификации, она может быть запущена автоматически с бот-сети или вручную одним атакующим.
Есть ли публичный эксплойт
Доступны публичные патчи и обсуждения в репозитории проекта. На сайте MetaCPAN опубликован патч для версии 2.08. В GitHub-репозитории проекта HTML-FormFu есть issue, описывающий проблему.
Подтвержденная эксплуатация в реальных атаках (in-the-wild) в предоставленных источниках не задокументирована. Однако наличие публичных PoC и патчей означает, что атакующие могут легко воспроизвести атаку.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для этой уязвимости в источниках не приведены. Можно использовать следующие неспецифичные признаки:
- Резкое увеличение потребления CPU и памяти веб-сервером или Perl-процессами.
- Запросы в логах веб-сервера с аномально длинными строками запроса, содержащими параметры, соответствующие
counter_name.
- Ошибки в логах приложения, связанные с исчерпанием памяти (Out of Memory) или превышением лимитов ресурсов.
Как обнаружить атаку
Для обнаружения атаки можно использовать следующие методы:
- Мониторинг потребления ресурсов (CPU, память) на серверах, где установлен
libhtml-formfu-perl.
- Анализ логов веб-сервера на предмет запросов с аномальными параметрами в строке запроса.
- Использование WAF (Web Application Firewall) для ограничения длины строки запроса или конкретных параметров.
- Проверка журналов приложений на ошибки, связанные с исчерпанием ресурсов.
Как проверить свою версию
Для проверки версии пакета
libhtml-formfu-perl в Ubuntu используйте следующие команды:
Bash:
cat /etc/os-release
uname -r
apt-cache policy libhtml-formfu-perl
ubuntu-security-status
Команда
ubuntu-security-status покажет, есть ли доступные обновления безопасности для установленных пакетов.Исправление
Основной способ исправления — обновление пакета
libhtml-formfu-perl до версии, содержащей исправление. Ubuntu публикует обновления через систему безопасности.- Выполните
sudo apt updateдля обновления списков пакетов.
- Выполните
sudo apt upgradeдля установки доступных обновлений.
- Проверьте, что версия пакета изменилась и соответствует исправленной версии (см. официальную страницу Ubuntu Security).
Если обновление недоступно для вашей версии Ubuntu, рассмотрите возможность отключения использования элемента
Repeatable с counter_name в приложении или применение временных мер защиты.Временные меры защиты
Пока обновление не установлено, можно применить следующие временные меры:
- Ограничьте длину строки запроса на уровне веб-сервера (Nginx, Apache) или WAF.
- Настройте WAF для блокировки запросов с аномально большими значениями параметров, соответствующих
counter_name.
- Если возможно, временно отключите или модифицируйте форму в приложении, чтобы не использовать
Repeatableсcounter_name.
- Ограничьте доступ к уязвимой странице, если это возможно, с помощью IP-фильтрации или аутентификации.
Как проверить устранение уязвимости
После обновления пакета проверьте, что уязвимость исправлена:
- Убедитесь, что версия пакета
libhtml-formfu-perlсоответствует исправленной версии (см. официальную страницу Ubuntu Security).
- Проведите тестовый запрос с завышенным значением
counter_nameв тестовой среде и убедитесь, что сервер не испытывает перегрузки.
- Проверьте логи приложения на отсутствие ошибок, связанных с исчерпанием ресурсов.
- Используйте
ubuntu-security-statusдля подтверждения, что все обновления безопасности установлены.
Вывод
CVE-2026-19873 представляет собой серьезный риск для систем Ubuntu, где установлен пакет
libhtml-formfu-perl и используется HTML::FormFu с элементами Repeatable. Атака проста в реализации и не требует аутентификации.Рекомендуется срочно обновить пакет до исправленной версии и применить временные меры защиты, если обновление задерживается. Регулярный мониторинг безопасности и обновление пакетов помогут снизить риск подобных уязвимостей.
Официальные источники
История обновлений статьи
- 03.09.2026 — Опубликована первая версия материала.
- 04.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
