CVE-2026-55734 in GuardianИнформация

Сводка

по VulDB • 02.08.2026

Уязвимость типа «Выделение ресурсов без ограничений или ограничения скорости» (Allocation of Resources Without Limits or Throttling) в библиотеке ueberauth guardian (модуль Guardian.Permissions) позволяет осуществить отказ в обслуживании путем исчерпания таблицы атомов BEAM.

Эта уязвимость связана с файлом программы lib/guardian/permissions.ex и программными процедурами 'Elixir.Guardian.Permissions':encode_permissions!/1, 'Elixir.Guardian.Permissions':encode_permissions_into_claims!/2, 'Elixir.Guardian.Permissions':do_encode_permissions!/2.

Миксин Guardian.Permissions устанавливает публичную функцию encode_permissions!/1 для каждого модуля, использующего Guardian.Permissions. Для каждого ключа предоставленной карты (map) функция encode_permissions!/1 вызывает String.to_atom(to_string(k)) до выполнения какой-либо проверки валидации. Затем ветвь обработки целочисленных значений do_encode_permissions!/2 выполняет короткое замыкание непосредственно к кодированию без проверки ключа против настроенного набора разрешений, поэтому ключ со значением типа integer интернируется как новый атом без вызова исключения. Атомы никогда не собираются сборщиком мусора (garbage collected), и таблица атомов BEAM является ресурсом фиксированного размера (по умолчанию около 1 048 576 записей), поэтому каждый уникальный выбранный злоумышленником ключ навсегда занимает одну ячейку. Злоумышленник, способный влиять на карту разрешений, которая достигает encode_permissions!/1 (например, карта разрешений, считанная из тела запроса и переданная для выпуска токена через encode_permissions_into_claims!/2), может создать неограниченное количество атомов и исчерпать таблицу атомов, что приведет к аварийному завершению работы всего узла BEAM и всех сервисов, работающих на нем. Близкая функция decode_permissions/1 не затронута, поскольку она пропускает ключи, отсутствующие в настроенном наборе разрешений.

Эта проблема затрагивает guardian: начиная с версии 2.0.0 до (не включая) 2.4.1.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Ответственный

EEF

Резервировать

17.06.2026

Раскрытие

01.08.2026

Модерация

принято

Вход

VDB-385310

EPSS

0.00000

KEV

Нет

Деятельности

Низкий

Источники

Do you want to use VulDB in your project?

Use the official API to access entries easily!