Peter Ullrich

#328de 55,126
498.1CVSS total
Vulnerabilidades · 72
Baixa
10
Média
22
Alta
39
Crítica
1
PT-2026-67223
6.9
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
6.9
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-67221
6.9
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-66757
2.1
2026-07-31
Pypi · Ymlr · CVE-2026-65636
**Nome do Software Vulnerável e Versões Afetadas** ufirstgroup ymlr versões 0.0.1 até 5.1.5 **Descrição** A neutralização inadequada de sequências CRLF (Carriage Return Line Feed) no módulo `Elixir.Ymlr` permite que atacantes injetem conteúdo arbitrário em documentos YAML gerados por meio de comentários de documento. As funções `document!/2`, `document/2`, `documents!/2` e `documents/2` interpolam strings de comentário fornecidas pelo chamador atrás de um prefixo # sem validar ou escapar quebras de linha. Como os comentários YAML são terminados por quebras de linha, um retorno de carro ou alimentação de linha encerra o contexto do comentário, fazendo com que o texto subsequente seja tratado como parte do corpo do documento. Isso permite que atacantes forjem chaves de mapeamento de nível superior, substituam valores definidos pela aplicação ou usem marcadores para dividir a saída em múltiplos documentos, que são então interpretados como dados legítimos por consumidores downstream, como carregadores de configuração e pipelines de CI. O problema está localizado no arquivo `lib/ymlr.ex` e afeta especificamente as rotinas `document!/2` e `documents!/2`. **Recomendações** Atualize para a versão 5.1.6. Como solução temporária, divida strings de comentários não confiáveis em quebras de linha e passe a lista resultante como o elemento de comentário da tupla `{comment, data}`. Rejeite strings de comentário que contenham caracteres de retorno de carro ou alimentação de linha. Evite colocar texto não confiável em comentários e, em vez disso, coloque-o nos dados codificados, onde o codificador aplica aspas.
PT-2026-57161
2.1
2026-07-10
Unknown · Elixir Plug · CVE-2026-56813
**Nome do Software Vulnerável e Versões Afetadas** elixir-plug versões 0.1.0 até 1.16.5 elixir-plug versões 1.17.0 até 1.17.3 elixir-plug versões 1.18.0 até 1.18.4 elixir-plug versões 1.19.0 até 1.19.4 elixir-plug versões 1.20.0 até 1.20.2 **Description** A neutralização inadequada de delimitadores de parâmetros permite que um invasor injete ou substitua atributos de cookies HTTP. A função `encode/2` em `Plug.Conn.Cookies` constrói o cabeçalho de resposta Set-Cookie interpolando o valor do cookie e seus atributos de caminho, domínio, `same site` e atributos extras sem neutralizar o delimitador ';'. Se uma aplicação colocar dados controlados por um invasor em um valor ou atributo de cookie, como através da função `put resp cookie/4`, um invasor pode injetar um ';' para anexar ou substituir atributos como o escopo de Domínio e Caminho, ou remover as flags Secure e HttpOnly. Isso pode possibilitar cookie tossing e fixação de sessão. Embora retornos de carro, alimetações de linha e bytes nulos sejam rejeitados, impedindo a divisão de resposta HTTP, a injeção de atributos via ';' permanece possível. **Recommendations** Atualize para a versão 1.16.6 ou posterior. Atualize para a versão 1.17.4 ou posterior. Atualize para a versão 1.18.5 ou posterior. Atualize para a versão 1.19.5 ou posterior. Atualize para a versão 1.20.3 ou posterior. Como medida paliativa temporária, valide ou rejeite o delimitador ';' em quaisquer dados não confiáveis antes de passá-los como valor ou atributo de cookie para as funções `put resp cookie/4` ou `encode/2`.
PT-2026-57158
6.9
2026-07-10
Plug · Plug · CVE-2026-56814
**Nome do Software Vulnerável e Versões Afetadas** plug versões 1.4.0 até 1.16.5 plug versões 1.17.0 até 1.17.3 plug versões 1.18.0 até 1.18.4 plug versões 1.19.0 até 1.19.4 plug versões 1.20.0 até 1.20.2 **Description** O analisador de corpo de requisição `Plug.Parsers.MULTIPART`, utilizado para uploads de arquivos e formulários multipart, não aplica o limite `:length` a todos os recursos consumidos. O analisador contabiliza apenas os bytes do corpo da parte, ignorando os bytes do cabeçalho da parte e partes com corpos vazios. Um invasor remoto não autenticado pode explorar isso enviando uma única requisição composta por inúmeras partes de arquivo com corpo vazio e um nome de arquivo não vazio no `Content-Disposition`. Esse processo desencadeia a criação de um arquivo temporário via `Plug.Upload` e retém uma estrutura `Plug.Upload` para cada parte, resultando em crescimento ilimitado de memória e exaustão de espaço em disco e inodes. O problema está associado ao arquivo `lib/plug/parsers/multipart.ex` e às funções `Plug.Parsers.MULTIPART.parse multipart/2`, `Plug.Parsers.MULTIPART.parse multipart headers/5`, `Plug.Parsers.MULTIPART.parse multipart body/4` e `Plug.Parsers.MULTIPART.parse multipart file/4`. **Recommendations** Atualize o plug para a versão 1.16.6 ou posterior. Atualize o plug para a versão 1.17.4 ou posterior. Atualize o plug para a versão 1.18.5 ou posterior. Atualize o plug para a versão 1.19.5 ou posterior. Atualize o plug para a versão 1.20.3 ou posterior.
PT-2026-57152
2.1
2026-07-10
Postgrex · Postgrex · CVE-2026-58225
**Nome do Software Vulnerável e Versões Afetadas** postgrex versões 0.16.0 até 0.22.2 **Description** Um problema no módulo `Postgrex.Notifications` permite que um invasor injete SQL na consulta de replay de reconexão ao influenciar o nome de um canal LISTEN. Embora a função `quote channel/1` sanitize aspas duplas, ela não escapa o delimitador de citação de cifrão `$$` usado no bloco de código anônimo dentro da função `handle connect/1`. Como a função `listen/3` apenas rejeita bytes nulos e nomes com mais de 63 bytes, um nome de canal contendo `$$` pode encerrar prematuramente a string delimitada por cifrões. Isso faz com que o PostgreSQL interprete o restante da entrada como instruções de nível superior, levando à rejeição da consulta de replay em cada tentativa de reconexão. Consequentemente, a conexão de notificação não consegue restabelecer as inscrições, resultando em uma negação de serviço onde as notificações são silenciosamente descartadas para todos os canais que compartilham essa conexão. Isso ocorre quando entradas não confiáveis são passadas como nome de canal para `Postgrex.Notifications.listen/3`. **Recommendations** Atualize o postgrex para a versão 0.22.3 ou posterior. Valide os nomes dos canais antes de passá-los para `Postgrex.Notifications.listen/3`, rejeitando qualquer nome que contenha o delimitador `$$` ou restringindo os nomes a caracteres alfanuméricos e sublinhados.
PT-2026-56202
7.5
2026-07-07
Phoenix · Phoenix · CVE-2026-56812
**Nome do Software Vulnerável e Versões Afetadas** phoenix versões 1.2.0-rc.0 até 1.5.14 phoenix versões 1.6.0-rc.0 até 1.6.16 phoenix versões 1.7.0-rc.0 até 1.7.23 phoenix versões 1.8.0-rc.0 até 1.8.8 **Description** O cliente JavaScript Presence no phoenix contém uma verificação inadequada de condições excepcionais que permite que um invasor com acesso comum ao canal cause uma negação de serviço persistente no lado do cliente para todos os visualizadores de um tópico de canal de presença. O problema reside no arquivo `assets/js/phoenix/presence.js` dentro das rotinas `Presence.syncState()` e `Presence.syncDiff()`. O cliente utiliza um teste de verdade simples (`state[key]`) em vez de uma verificação de propriedade própria para verificar se uma presença existe. Como as chaves de presença são controladas pelo invasor, um usuário pode fornecer uma chave que corresponda a um nome de membro do `Object.prototype` (como ` proto `, `constructor`, `toString` ou `hasOwnProperty`). Isso faz com que a busca retorne o `Object.prototype` integrado em vez de `undefined`, levando o código a tentar ler `.metas.map(...)` do protótipo, o que gera um `TypeError` não capturado. Essa exceção impede que o estado local seja atualizado e evita que o `onSync()` seja disparado. Como o servidor continua a enviar a chave maliciosa, a sincronização permanece interrompida para todos os visualizadores do tópico até que o invasor saia. Trata-se de uma confusão de tempo de leitura do objeto protótipo e não de poluição de protótipo. **Recommendations** Atualize o phoenix para a versão 1.5.15 ou posterior. Atualize o phoenix para a versão 1.6.17 ou posterior. Atualize o phoenix para a versão 1.7.24 ou posterior. Atualize o phoenix para a versão 1.8.9 ou posterior.
PT-2026-53680
2.3
2026-06-29
Mdex · Mdex · CVE-2026-53427
**Nome do Software Vulnerável e Versões Afetadas** mdex versões 0.11.3 até 0.12.2 mdex native versões 0.1.0 até 0.2.2 **Descrição** A neutralização inadequada de entrada durante a geração de páginas web permite cross-site scripting (XSS) armazenado ou refletido via Markdown controlado por um invasor. Quando o realce de sintaxe e o encaminhamento total de string de informação (`render: [full info string: true]`) estão habilitados, o adaptador Lumis copia o valor do atributo de string de informação `highlight lines class` de uma cerca de código, sem escape, para o atributo de classe de cada linha renderizada. A função `comrak nif::lumis adapter::LumisAdapter::parse custom attributes()` realiza o shlex-parse da string de informação e armazena cada par chave=valor verbatim. Subsequentemente, `highlight lines config` extrai `highlight lines class` para o valor de classe por linha, e `write highlighted()` interpola esse valor diretamente no atributo de classe da `<div>` por linha. Um token de shell com aspas simples pode preservar uma aspa dupla interna, permitindo que um invasor encerre o atributo de classe e injete HTML e JavaScript arbitrários. Isso pode resultar em roubo de sessão e sequestro de conta sem a necessidade de autenticação ou privilégios especiais. **Recomendações** Atualize o mdex para a versão 0.12.3 ou posterior. Atualize o mdex native para a versão 0.2.3 ou posterior. Como medida paliativa temporária, não habilite o encaminhamento total de string de informação (`render: [full info string: true]`) ao renderizar Markdown não confiável. Restrinja os valores de `highlight lines class` a um conjunto de caracteres seguro (ex: `[A-Za-z0-9 -]`) antes da renderização.
PT-2026-53681
6.9
2026-06-29
Mdex · Mdex · CVE-2026-53428
**Nome do Software Vulnerável e Versões Afetadas** mdex versões 0.11.0 até 0.12.2 mdex native versões 0.1.0 até 0.2.2 **Descrição** Um invasor não autenticado pode causar a negação de serviço por meio de alocação de memória ilimitada. O problema ocorre quando a função `parse highlight lines()` no adaptador nativo expande precipitadamente um intervalo de linhas inclusivo controlado pelo usuário, proveniente do decorador `highlight lines` de um bloco de código cercado, em um `Vec<usize>` sem um limite superior para o tamanho do intervalo. Um invasor que forneça Markdown renderizado via `MDEx.to html/2` pode especificar um intervalo extremamente grande, forçando o sistema a alocar memória excessiva e abortar o BEAM, o que nega o serviço a todos os usuários do processo de renderização. Além disso, o loop de gravação por linha realiza uma varredura linear sobre o vetor, resultando em um custo quadrático para a renderização. A exploração requer que a aplicação habilite os decoradores de bloco de código, definindo as opções de renderização `github pre lang` e `full info string` e configurando um formatador de realce de sintaxe inline. **Recomendações** Atualize o mdex para a versão 0.12.3 ou posterior. Atualize o mdex native para a versão 0.2.3 ou posterior. Como solução temporária, desative os decoradores de bloco de código deixando as opções de renderização `github pre lang` e `full info string` desconfiguradas ou evite configurar um formatador de realce de sintaxe inline para evitar a análise das especificações de `highlight lines`.