CVE-2026-109821: Unbounded port parsing in URI.parse/1 enables CPU exhaustion denial of service in Elixir
Оценка Noroxi
Приоритет: Наблюдать (оценка срочности 25/100)
- В отслеживаемых источниках (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) нет публичного эксплойта или записей об эксплуатации.
- Вероятность эксплуатации в ближайшие 30 дней: 0,49% (FIRST EPSS).
- Может быть вызвана любым, у кого есть доступ через интернет. Учётная запись или пароль не требуются. Действия пользователя не требуются. Особые условия не требуются; воспроизводится стабильно.
- Исправленная версия: elixir-lang elixir 07d9abc3f3ac4c8d2ba8384bd102b6d6205b08b7, 1.18.6, 1.19.7; azl3 elixir 1.16.1-3 on Azure Linux 3.0 1.16.1-4.
Пока низкий приоритет. Обновитесь до elixir-lang elixir 07d9abc3f3ac4c8d2ba8384bd102b6d6205b08b7, 1.18.6, 1.19.7; azl3 elixir 1.16.1-3 on Azure Linux 3.0 1.16.1-4 или новее.
Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем
Первоисточники: NVD · CVE.org · FIRST EPSS
Improper Validation of Specified Quantity in Input vulnerability in the Elixir standard library's URI module allows an attacker who supplies a URL to cause a denial of service through CPU exhaustion. URI.parse/1 converts the port component with String.to_integer/1 in split_authority/1 (lib/elixir/lib/uri.ex) without bounding its length, so a port of up to 1,262,592 decimal digits produces a bignum of that size and a longer one raises SystemLimitError. Rendering the parsed URI back to text (URI.to_string/1, inspect/1, logging, error formatting) converts the bignum with :erlang.integer_to_binary/1, which is quadratic on Erlang/OTP 27, 28 and 29.0: a 400,000-digit port renders in about 2.6 seconds and a 1 MB port in about 18 seconds. Ports above 65535 are also accepted. This issue affects elixir: from 0.5.0 before 1.18.6, from 1.19.0-rc.0 before 1.19.7, and from 1.20.0-rc.0 before 1.20.5.
- Опубликовано
- 30 окт. 2026 г.
- Обновлено
- 30 окт. 2026 г.
- EPSS
- 0,4 % · 43-й процентиль
- CWE
- CWE-400
Инструменты для отчёта
Оценка срочности
25
Пока низкий приоритет.
- CVSS
- 25 / 40 · 6.3 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,4 %
Решение CISA SSVC
- Эксплуатация
- proof of concept
- Автоматизируемо
- нет
- Техническое влияние
- частичное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- —
- CNA · EEF
- 6,3
- NVD ещё не выставил свою оценку; показана оценка CNA.
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Узнайте, когда запись изменится
- Нет в KEV: эксплуатация в реальных атаках не зафиксирована
- Публичного эксплойта нет
- Исправление выпущено
Если что-то из этого изменится, сообщим в ежедневной сводке.
Затронута ли ваша версия? ПроверьтеАнализ Noroxi
Что это значит для вашей инфраструктуры?
Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.
Мы используем этот продукт, нужна помощьЗатронутые системы
Затронута ли ваша версия?
Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.
—
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (EEF). Не зависят от анализа CPE в NVD и обычно опережают его.
elixir-lang elixir
- 0.5.0 и новее · до 1.18.6затронута · semver
- 1.19.0-rc.0 и новее · до 1.19.7затронута · semver
- 1.20.0-rc.0 и новее · до 1.20.5затронута · semver
- 39801821eef2d06524e5ebf5a0e4b3c380ad23ae и новеезатронута · gitисправлено в 9a39d64a4473d02681c486bc70681c972479d32b, b70f33a591b6ab8eb0fa4a7e00bac1c2ed4e0d58, 07d9abc3f3ac4c8d2ba8384bd102b6d6205b08b7, d879b39d778fec2f475689573d5672720c4f2a21
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Debian:12 | elixir-lang | с 0 | — |
Тот же продукт
elixir-lang: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2026-115274Unbounded integer parsing in JSON.decode/1 enables CPU and memory exhaustion denial of service in Elixir27Наблюдать
- CVE-2026-75758Unbounded recursion between Inspect.List charlist rendering and List.to_string/1 error path in Elixir23Наблюдать
- CVE-2026-97209Insecure temporary file in mix deps.partition lets a local user execute code in another user's dependency build21Наблюдать
Опубликованы до и после этой записи в том же продукте
- ← РаньшеCVE-2026-497629 июн. 2026 г. · Unbounded integer parsing in the Version module enables CPU and memory exhaustion denial of service20Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| elixir-lang elixir | 07d9abc3f3ac4c8d2ba8384bd102b6d6205b08b7 | Вендор (CNA) |
| elixir-lang elixir | 1.18.6 | Вендор (CNA) |
| elixir-lang elixir | 1.19.7 | Вендор (CNA) |
| elixir-lang elixir | 1.20.5 | Вендор (CNA) |
| elixir-lang elixir | 9a39d64a4473d02681c486bc70681c972479d32b | Вендор (CNA) |
| elixir-lang elixir | b70f33a591b6ab8eb0fa4a7e00bac1c2ed4e0d58 | Вендор (CNA) |
| elixir-lang elixir | d879b39d778fec2f475689573d5672720c4f2a21 | Вендор (CNA) |
| azl3 elixir 1.16.1-3 on Azure Linux 3.0 | 1.16.1-4 · Release Notes | Microsoft (MSRC) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
- Публикация
- Исправлениев тот же день
- Сегодня13 нояб. 2026 г.+14 дн.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
- Eric Meadows-Jönssonнашёл
- José Valimразработчик исправления
- Jonatan Männchen / EEFаналитик
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
- CVE-2026-49762с разницей 143 дн.Unbounded integer parsing in the Version module enables CPU and memory exhaustion denial of service20Наблюдать
В записи нет: публичной программы вознаграждений.
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- Целостность
- Доступность
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Не требуется
- Область действия
- X
Класс уязвимости (CWE)
CWE-400 · Uncontrolled Resource ConsumptionВектор CVSS
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
nvd-secondary
Первопричина
Код, разбирающий вложенные структуры, не ограничивает глубину или размер. Небольшие входные данные могут привести к несоразмерной вычислительной нагрузке.
Ошибка в коде
Весь класс CWE-400Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.
Уязвимый код
function expand(node) {
return node.children.map(expand);
}Исправленный код
const MAX_DEPTH = 32;
function expand(node, depth = 0) {
if (depth > MAX_DEPTH) throw new Error("слишком глубоко");
return node.children.map((c) => expand(c, depth + 1));
}Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Журнал изменений
- Эксплуатация SSVC— → poc
- Зрелость эксплойта— → none
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
Показать все источники (ещё 8)Свернуть
- github.com/elixir-lang/elixir/commit/07d9abc3f3ac4c8d2ba8384bd102b6d6205b08b7
- github.com/elixir-lang/elixir/commit/39801821eef2d06524e5ebf5a0e4b3c380ad23ae
- github.com/elixir-lang/elixir/commit/9a39d64a4473d02681c486bc70681c972479d32b
- github.com/elixir-lang/elixir/commit/b70f33a591b6ab8eb0fa4a7e00bac1c2ed4e0d58
- github.com/elixir-lang/elixir/commit/d879b39d778fec2f475689573d5672720c4f2a21
- github.com/elixir-lang/elixir/security/advisories/GHSA-327h-97cv-59xg
- github.com/erlang/otp/security/advisories/GHSA-8qw4-2chm-mvj2
- osv.dev/vulnerability/EEF-CVE-2026-109821
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.