Yordis Prieto

#4414de 56,337
62.7CVSS total
Vulnerabilidades · 9
Baixa
2
Alta
7
PT-2026-67221
7.5
2026-08-01
Unknown · Ueberauth Guardian · CVE-2026-54894
**Nome do Software Vulnerável e Versões Afetadas** ueberauth guardian versões 0.1.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 influenciadas por um invasor. O módulo `Guardian.Plug.Keys` deriva chaves de namespace de conexão e sessão passando binários arbitrários para a função `String.to atom/1`. Especificamente, a função `base key/1` em `lib/guardian/plug/keys.ex` converte binários em átomos, e as funções auxiliares `claims key/1`, `resource key/1` e `token key/1` criam átomos adicionais. Da mesma forma, `key from other/1` converte binários capturados por regex através de `String.to atom/1`. Pontos de entrada de alto nível, como `Guardian.Plug.current token(conn, key: key)`, passam chaves fornecidas pelo chamador diretamente para essas funções. Como `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 (que possui um limite padrão de aproximadamente 1.048.576 entradas) pode ser esgotada. Se uma aplicação rotear dados não confiáveis, como um identificador de locatário ou cabeçalho de requisição, para uma chave Guardian através do parâmetro `key`, um invasor pode enviar um fluxo de entradas variadas para consumir a tabela de átomos e travar o nó BEAM, afetando todas as aplicações executadas nele. **Recomendações** Atualize o ueberauth guardian para a versão 2.4.1 ou posterior. Como medida paliativa temporária, não derive chaves do Guardian a partir de entradas não confiáveis; em vez disso, use um conjunto fixo e codificado de chaves de namespace ou valide os valores contra uma lista de permissões limitada antes de passá-los como a opção `key`.
PT-2026-67223
7.5
2026-08-01
Unknown · Ueberauth Guardian · CVE-2026-55733
**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`.
PT-2026-67224
7.5
2026-08-01
Unknown · Ueberauth Guardian · CVE-2026-55734
**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.
PT-2026-45838
8.2
2026-06-02
Tesla · Tesla · CVE-2026-48595
**Nome do Software Vulnerável e Versões Afetadas** tesla versões 1.4.0 até 1.18.2 **Description** O manuseio inadequado da distinção entre maiúsculas e minúsculas em `Tesla.Middleware.FollowRedirects` permite o vazamento de credenciais para origens de terceiros em redirecionamentos de origem cruzada. O middleware tenta remover cabeçalhos sensíveis comparando-os com uma lista de filtros em letras minúsculas contendo `authorization` e `host`. No entanto, como o Tesla preserva as chaves dos cabeçalhos exatamente como fornecidas pelo chamador, sem normalização, cabeçalhos que utilizam a capitalização canônica, como `Authorization`, não coincidem com o filtro em minúsculas e são encaminhados para o destino do redirecionamento. Um atacante que possa controlar a resposta `Location:` — por meio de seu próprio endpoint, um upstream de redirecionamento aberto ou uma origem comprometida — pode capturar tokens de portador ou outros materiais de autorização. Isso ocorre quando a aplicação utiliza `Tesla.Middleware.FollowRedirects` e define cabeçalhos com chaves que não estejam em letras minúsculas. **Recommendations** Atualize o tesla para a versão 1.18.3. Como solução temporária, normalize todas as chaves de cabeçalho para letras minúsculas antes de passá-las ao Tesla, especificamente utilizando `authorization` em vez de `Authorization` ao definir cabeçalhos via `Tesla.put header/3` ou `Tesla.Middleware.Headers`.