В библиотеке `finance.js` версии 4.1.0 обнаружена уязвимость отказа в обслуживании (DoS), вызываемая функцией `seekZero()`. Функция ищет ну…
В библиотеке `finance.js` версии 4.1.0 обнаружена уязвимость отказа в обслуживании (DoS), вызываемая функцией `seekZero()`. Функция ищет нулевую точку переданной функции `fn(x)`, последовательно увеличивая `x` пока `fn(x) > 0`, а затем уменьшая `x` шагом 0.01 пока `fn(x) < 0`. При определённых входных данных, когда `fn(x)` не меняет знак, цикл может стать бесконечным, приводя к зависанию процесса и отказу в обслуживании. Уязвимость описана в нескольких источниках, включая официальную страницу проекта, репозиторий GitHub и аналитическую статью.\n\nИсточники:\n\t- [1] http://financejs.com\n\t- [2] https://github.com/ebradyjobory/finance.js\n\t- [3] https://raw.githack.com/ebradyjobory/finance.js/6d571ea2a86d08491ceb584e292e9b76b0a60636/finance.js\n\t- [4] https://medium.com/@nakah_/cve-2025-56571-and-cve-2025-56572-denial-of-service-vulnerabilities-in-finance-js-78f8b399f53b
Продукт не управляет должным образом выделением ограниченного ресурса и его обслуживанием.
https://cwe.mitre.org/data/definitions/400.html →Открыть в коллекции CWE →Злоумышленник инициирует атаку исчерпания ресурсов, при которой большое количество небольших XML-сообщений доставляется с достаточно высокой частотой для обеспечения отказа в обслуживании или аварийного завершения работы цели. Транзакции, такие как повторяющиеся SOAP-транзакции, способны исчерпывать ресурсы быстрее, чем обычный флудинг, из-за дополнительных ресурсов, потребляемых протоколом SOAP, и ресурсов, необходимых для обработки SOAP-сообщений. Используемые транзакции несущественны при условии, что они вызывают потребление ресурсов на цели. Иными словами, это обычная флудинг-атака, усиленная за счёт использования сообщений, требующих дополнительной обработки на целевой стороне.
https://capec.mitre.org/data/definitions/147.html →Открыть в коллекции CAPEC →Злоумышленник пытается лишить легитимных пользователей доступа к ресурсу, непрерывно занимая конкретный ресурс с целью удержания его занятым как можно дольше. Основная цель злоумышленника состоит не в том, чтобы привести цель к аварийному завершению или проводить флудинг, что привлекло бы внимание защитников, а в том, чтобы многократно выполнять действия или эксплуатировать алгоритмические недостатки, чтобы данный ресурс оставался занятым и недоступным для легитимного пользователя. Тщательно формируя запросы, удерживающие ресурс занятым посредством, казалось бы, безобидных запросов, злоумышленник ограничивает или полностью лишает легитимных пользователей доступа к ресурсу.
https://capec.mitre.org/data/definitions/227.html →Открыть в коллекции CAPEC →Злоумышленник может реализовать атаку на программу, использующую неэффективную реализацию регулярных выражений (Regex), подобрав входные данные, приводящие к крайне неблагоприятному сценарию работы Regex. Типичный крайний сценарий характеризуется экспоненциальным временем работы относительно размера входных данных. Это объясняется тем, что большинство реализаций использует недетерминированный конечный автомат (NFA) в качестве основы алгоритма Regex, поскольку NFA допускает обратный просмотр и тем самым поддерживает более сложные регулярные выражения.
https://capec.mitre.org/data/definitions/492.html →Открыть в коллекции CAPEC →