PT-2026-67223 · Unknown · Ueberauth Guardian
CVSS v4.0
6.9
Média
| Vetor | AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA: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 permite a negação de serviço (DoS) através da criação ilimitada de átomos a partir de entradas binárias controladas por um invasor. O codificador
Guardian.Permissions.AtomEncoding processa escopos de permissão passando binários arbitrários para a função String.to atom/1. Quando a função encode/3 em lib/guardian/permissions/atom encoding.ex é chamada com uma lista, a cláusula binária encode value/3 chama String.to atom(value) sem uma verificação de lista de permissões, descartando o argumento perm set.Como a função
String.to atom/1 cria um novo átomo para cada binário não visto e os átomos não são coletados pelo garbage collector, a tabela de átomos do BEAM (limitada a aproximadamente 1.048.576 entradas) pode ser esgotada. Um invasor que forneça entradas variadas através de corpos de requisição ou claims de JWT pode causar a falha do nó BEAM por system limit, derrubando todas as aplicações executadas nele.Recomendações
Atualize o ueberauth guardian para a versão 2.4.1 ou posterior.
Como solução temporária, altere o codificador de permissões para
Guardian.Permissions.BitwiseEncoding ou Guardian.Permissions.TextEncoding.
Como solução temporária, valide cada valor de permissão contra a lista de permissões perm set configurada antes de passá-lo para a função encode/3.Exploit
Correção
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