PT-2026-67224 · Unknown · Ueberauth Guardian
CVSS v3.1
7.5
Alta
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Nome do Software Vulnerável e Versões Afetadas
ueberauth guardian versões 2.0.0 até 2.4.0
Descrição
Uma alocação de recursos sem limites ou controle no módulo
Guardian.Permissions permite a negação de serviço via exaustão da tabela de átomos do BEAM. O mixin Guardian.Permissions instala uma função pública encode permissions!/1 que chama String.to atom(to string(k)) para cada chave de um mapa fornecido antes da validação. Na função do encode permissions!/2, a cláusula de valor inteiro ignora a validação contra o conjunto de permissões configurado, permitindo que chaves com valores inteiros sejam internadas como novos átomos. Como os átomos não são coletados pelo garbage collector e a tabela de átomos do BEAM possui tamanho fixo, um invasor que consiga influenciar um mapa de permissões passado para encode permissions!/1 ou encode permissions into claims!/2 pode exaurir a tabela, derrubando o nó BEAM e todos os serviços em execução. Este problema está associado ao arquivo lib/guardian/permissions.ex e às funções encode permissions!/1, encode permissions into claims!/2 e do encode permissions!/2.Recomendações
Atualize o ueberauth guardian para a versão 2.4.1 ou posterior.
Como medida paliativa temporária, filtre o mapa de permissões para garantir que apenas chaves pertencentes ao conjunto de permissões configurado sejam passadas para
encode permissions!/1 ou encode permissions into claims!/2, e evite passar mapas de permissões influenciados por invasores para essas funções.Exploit
Correção
DoS
Allocation of Resources Without Limits
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Ueberauth Guardian