Ad

CVE-2026-82617

CRITICAL CVSS 4.0: 10,0 EPSS 0.34%
Обновлено 12 сентября 2026
Apache
Параметр Значение
CVSS 10,0 (CRITICAL)
Уязвимые версии 2.0.0 — 2.5.11
Устранено в версии 2.5.12
Тип уязвимости CWE-1333 (Атака через регулярные выражения (ReDoS))
Поставщик Apache
Публичный эксплойт Нет

Два встроенных шаблона поиска имен, представленные opennlp.tools.namefind.RegexNameFinderFactory — DEFAULT_REGEX_NAME_FINDER.EMAIL и DEFAULT_REGEX_NAME_FINDER.URL – содержат неоднозначные вложенные квантификаторы. Ан приложение, которое получает эти средства поиска через RegexNameFinderFactory.getDefaultRegexNameFinders(...) и затем применяет их к ненадежный текст через RegexNameFinder.find(String[]) или RegexNameFinder.find(String) может быть приведен к суперлинейному возврату или к неограниченной рекурсии сопоставления с помощью небольшой продуманный вклад. Для шаблона EMAIL — длинный набор символов локальной части, за которым никогда не следует @ заставляет сопоставитель повторно сканировать до конца ввода с каждого начального смещения.

Стоимость растет квадратично с длиной ввода: ввод размером примерно 32 КБ занимает несколько секунд процессора за один вызов find() и не возвращает совпадений, а каждое удвоение входных данных увеличивает стоимость примерно в четыре раза. Для шаблона URL-адреса подвыражение строки запроса вкладывает повторяющееся повторение внутри внешнее повторение. Сопоставитель JDK выполняет рекурсию один раз для каждого токена запроса, поэтому ввод примерно 4 КБ, содержащие множество токенов, разделенных &, исчерпывают стек потоков и вызывает распространение java.lang.StackOverflowError из find(), завершая вызывающая нить.

В потоке, созданном с меньшим стеком (например, -Xss512k, обычно пулов рабочих серверов) достаточно примерно 1 КБ. В обоих случаях злоумышленник, который может предоставить текст для анализа, может преобразовать один запрос. в секунды или минуты закрепленного процессора или в внезапное прекращение потока, отказывающее в обслуживании приложение для встраивания. Никакой аутентификации, специальной конфигурации или файла модели не требуется. требуется за пределами приложения, выбрав один из двух встроенных средств поиска.

Эта проблема затрагивает Apache OpenNLP: версии с 2.0.0 по 2.5.11; с версии 3.0.0-M1 до 3.0.0-М5. Пользователям рекомендуется выполнить обновление до версии 2.5.12 или до 3.0.0-M6 для пользователей, отслеживающих Строка вехи 3.0.0, которая устраняет проблему.

Показать оригинальное описание (EN)

The two built-in name-finder patterns exposed by opennlp.tools.namefind.RegexNameFinderFactory - DEFAULT_REGEX_NAME_FINDER.EMAIL and DEFAULT_REGEX_NAME_FINDER.URL - contain ambiguous nested quantifiers. An application that obtains these finders through RegexNameFinderFactory.getDefaultRegexNameFinders(...) and then applies them to untrusted text through RegexNameFinder.find(String[]) or RegexNameFinder.find(String) can be driven into super-linear backtracking or into unbounded matcher recursion by a small crafted input. For the EMAIL pattern, a long run of local-part characters that is never followed by an @ forces the matcher to re-scan to end-of-input from every starting offset. Cost grows quadratically with input length: an input of approximately 32 KB consumes several seconds of CPU in a single find() call and returns no match, and each doubling of the input multiplies the cost roughly four-fold. For the URL pattern, the query-string sub-expression nests a capturing repetition inside an outer repetition. The JDK matcher recurses once per query token, so an input of approximately 4 KB containing many &-separated tokens exhausts the thread stack and causes java.lang.StackOverflowError to propagate out of find(), terminating the calling thread. On a thread created with a smaller stack (for example -Xss512k, typical of server worker pools) approximately 1 KB is sufficient. In both cases an attacker who can supply text for analysis can convert a single request into seconds to minutes of pinned CPU, or into an abrupt thread death, denying service to the embedding application. No authentication, special configuration, or model file is required beyond the application having selected one of the two built-in finders. This issue affects Apache OpenNLP: from 2.0.0 through 2.5.11; from 3.0.0-M1 through 3.0.0-M5. Users are recommended to upgrade to version 2.5.12, or to 3.0.0-M6 for users tracking the 3.0.0 milestone line, which fix the issue.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Условия для атаки
Не требуются
Нет дополнительных условий
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v4.0

Уязвимые продукты

apache software foundation:apache opennlp