Уязвимость в expr-eval угрожает веб-приложениям: критический риск удаленного выполнения кода

vulnerability

В ноябре 2025 года обнаружена критическая уязвимость в популярных JavaScript-библиотеках expr-eval и expr-eval-fork, используемых для вычисления математических выражений. Проблема, зарегистрированная под идентификатором BDU:2025-14089 и CVE-2025-12735, позволяет злоумышленникам выполнять произвольный код на атакуемых системах. Эксперты оценивают угрозу как критическую из-за максимальных баллов в рейтингах CVSS.

Детали уязвимости

Уязвимость затрагивает функцию estimate(), которая недостаточно проверяет входные данные. Следовательно, удаленный атакующий может отправить специально созданное выражение, приводящее к выполнению вредоносного кода. Затронуты версии expr-eval до 2.0.2 включительно и expr-eval-fork до 3.0.0. Библиотеки широко применяются в веб-приложениях, системах управления и аналитических платформах, что увеличивает потенциальный масштаб атак.

Оценка по CVSS 2.0 составляет 10 баллов, а по CVSS 3.1 - 9,8. Высокие показатели обусловлены несколькими факторами. Во-первых, атака не требует аутентификации. Во-вторых, уязвимость эксплуатируется через сеть с низкой сложностью атаки. В-третьих, последствия включают полный компрометацию конфиденциальности, целостности и доступности системы.

Разработчики уже выпустили исправления. Например, для expr-eval рекомендуется обновление до версии 2.0.3. Тем не менее, установка патчей должна проводиться осторожно. В условиях санкционных ограничений важно проверять источники обновлений на надежность. Альтернативно, организации могут временно применять компенсирующие меры.

Одной из ключевых мер является настройка контроля пользовательских функций. Это ограничивает возможность выполнения произвольных команд. Кроме того, полезно использовать межсетевые экраны для блокировки несанкционированного доступа к уязвимым компонентам. Также рекомендуется сегментировать сеть, изолируя системы с expr-eval от критических ресурсов.

Для мониторинга инцидентов эффективны SIEM-системы (Security Information and Event Management). Они помогают отслеживать вызовы функции estimate() и обнаруживать аномальную активность. Дополнительно, ограничение доступа из интернета снижает риски внешних атак. Корпоративные VPN (виртуальные частные сети) обеспечивают безопасное удаленное подключение.

Тип ошибки классифицирован как CWE-20 (недостаточная проверка вводимых данных). Эта категория уязвимостей часто встречается в веб-приложениях. Например, аналогичные проблемы ранее выявлялись в других библиотеках обработки выражений. Следовательно, разработчикам стоит усилить валидацию входных параметров во всех похожих модулях.

На данный момент, наличие публичных эксплойтов не подтверждено. Однако, высокая критичность уязвимости может стимулировать киберпреступников к созданию инструментов для атак. Особенно рискуют организации, использующие устаревшие версии библиотек. Поэтому, администраторам следует провести инвентаризацию зависимостей в своих проектах.

Производитель подтвердил уязвимость и опубликовал рекомендации на GitHub. Пользователям стоит ознакомиться с официальной документацией. Там же приведены примеры безопасного использования библиотек. Между тем, некоторые разработчики уже начали миграцию на альтернативные решения с более строгой проверкой выражений.

В долгосрочной перспективе, инцидент подчеркивает важность регулярного обновления зависимостей. Также, необходимо внедрять практики безопасной разработки. Например, статический анализ кода может выявлять подобные дефекты на ранних стадиях. Кроме того, проведение пентестов помогает оценить реальные риски.

В заключение, уязвимость в expr-eval демонстрирует серьезность угроз, связанных с сторонними библиотеками. Хотя патчи уже доступны, их внедрение требует взвешенного подхода. Организациям рекомендуется сочетать обновления с мерами мониторинга и контроля доступа. Это минимизирует вероятность успешной атаки до полного устранения проблемы.

Ссылки

Комментарии: 0