Hono — это платформа веб-приложений, обеспечивающая поддержку любой среды выполнения JavaScript. С версий 4.12.0 по 4.12.33 промежуточное программное обеспечение LanguageDetector уязвимо для алгоритмической сложности отказа в обслуживании при обработке созданного языкового тега, содержащего большое количество подтегов, разделенных дефисами. Чтобы реализовать усечение тегов прогрессивного языка, NormalizeLanguage() повторно вызывает parts.slice(0, i).join('-') для каждого возможного префикса, поэтому общий объем обработки строк растет квадратично с количеством вложенных тегов.
Значения языка могут поступать из параметра запроса, файла cookie, заголовка Accept-Language или URL-адреса, в зависимости от конфигурации детектора, а порядок детектора по умолчанию включает обнаружение строки запроса, файла cookie и заголовка, поэтому приложения, использующие LanguageDetector(), могут подвергать эту обработку неаутентифицированным запросам. Злоумышленник может неоднократно отправлять запросы, содержащие длинные языковые теги, разделенные дефисом, что приводит к чрезмерному использованию ЦП и предотвращению обработки несвязанных запросов. Эта проблема исправлена в версии 4.12.34.
Показать оригинальное описание (EN)
Hono is a Web application framework that provides support for any JavaScript runtime. From 4.12.0 to 4.12.33, the languageDetector middleware is vulnerable to algorithmic complexity denial of service when processing a crafted language tag containing a large number of hyphen separated subtags. To implement progressive language tag truncation, normalizeLanguage() repeatedly calls parts.slice(0, i).join('-') for every possible prefix, so the total amount of string processing grows quadratically with the number of subtags. Language values may come from a query parameter, cookie, Accept-Language header, or URL path, depending on the detector configuration, and the default detector order enables query string, cookie, and header detection, so applications using languageDetector() may expose this processing to unauthenticated requests. An attacker may repeatedly send requests containing long, hyphen separated language tags, causing excessive CPU consumption and preventing unrelated requests from being processed. This issue is fixed in version 4.12.34.
Характеристики атаки
Последствия
Строка CVSS v3.1