CVE-2026-13577: Dancer2 до 2.2.0 генерирует предсказуемые идентификаторы сессий
В Perl-фреймворке Dancer2 версий до 2.2.0 обнаружена уязвимость, из-за которой идентификаторы сессий генерируются с низкой энтропией при отсутствии криптографических модулей. Предсказуемые session id позволяют злоумышленнику подбирать их и получать несанкционированный доступ к системам. Проблема затрагивает веб-приложения на Dancer2, где установлены не все рекомендуемые зависимости.
Подробности
Уязвимость затрагивает Dancer2 — популярный легковесный веб-фреймворк для языка Perl. В версиях до 2.2.0 метод Dancer2::Core::Role::SessionFactory::generate_id без предупреждения переключается на встроенный механизм генерации session id, если одновременно недоступны оба модуля: Math::Random::ISAAC::XS и Crypt::URandom. Резервный (fallback) идентификатор формируется как SHA-1-хеш от совокупности значений: вызова встроенной функции rand, абсолютного пути к модулю Dancer2::Core::Role::SessionFactory, внутреннего счётчика, идентификатора процесса, адреса экземпляра модуля в памяти и перемешанной строки символов (через List::Util::shuffle, который также опирается на rand). Все эти источники обладают низкой энтропией и легко предсказуемы. Встроенная функция rand() инициализируется 32-битным seed и считается непригодной для задач безопасности. Как следствие, генерируемые идентификаторы сессий фактически детерминированы в рамках известных параметров процесса, что позволяет атакующему подбирать их и захватывать чужие сессии. CVSS-оценка в записи CVE не приводится.Что делать
Основная рекомендация — обновить Dancer2 до версии 2.2.0 или выше. В этой версии устранён небезопасный fallback при генерации идентификаторов сессий. Если обновление невозможно, следует обеспечить наличие хотя бы одного из требуемых криптографически стойких источников: установить модули Math::Random::ISAAC::XS и Crypt::URandom. Это исключит переход на небезопасный резервный механизм. Дополнительно рекомендуется проверить установленные зависимости в окружении, где работает приложение на Dancer2, и убедиться, что криптографические модули действительно загружаются. В качестве временной митигации стоит рассмотреть ограничение времени жизни сессий, привязку сессий к дополнительным параметрам (например, IP-адресу или отпечатку клиента) и усиление мониторинга подозрительной активности с сессиями. Итог: уязвимость CVE-2026-13577 носит практический характер и напрямую влияет на безопасность аутентификации в приложениях на Dancer2. Наиболее надёжное решение — обновление до версии 2.2.0; при невозможности апдейта необходимо гарантировать доступность криптографических модулей и усилить контроль за сессиями.Источник: CVE Project (cvelistV5)
