José Valim

#1617de 56,330
146.9CVSS total
Vulnerabilidades · 22
Baixa
3
Média
9
Alta
9
Crítica
1
PT-2026-84260
6.3
2026-09-01
Unknown · Erlang/Otp · CVE-2026-70405
**Nome do Software Vulnerável e Versões Afetadas** Erlang/OTP versões 17.0 até 27.3.4.16 Erlang/OTP versões 28.0 até 28.5.0.5 Erlang/OTP versões 29.0 até 29.0.5 snmp versões 4.25.1 até 5.18.2.0 snmp versões 5.19 até 5.20.2.1 snmp versões 5.20.3 até 5.20.4 **Description** A validação inadequada da quantidade especificada na entrada no módulo snmp permite que um invasor remoto degrade a disponibilidade. Um invasor pode enviar uma mensagem SNMP contendo um BER INTEGER cujo campo de comprimento seja arbitrariamente grande. A função `snmp pdus:dec integer notag/1` define seu limite de tamanho como infinito por padrão, e a função `do dec integer notag/2` acumula o valor em cada byte declarado com um deslocamento recursivo e um operador or bit a bit. O volume de trabalho cresce superlinearmente em relação ao comprimento declarado, pois cada operação atua sobre um bignum progressivamente maior. Embora exista uma variante com limite de tamanho `dec integer notag/2`, ela é acessada apenas por `dec snmp version/1`. Outros campos, como o identificador de requisição, status de erro, índice, campos de armadilha genéricos e específicos, boots e tempo do engine, e todos os valores de varbind decodificados por `dec value/1`, utilizam a forma ilimitada. A decodificação ocorre antes do processamento do PDU, portanto, nenhuma requisição válida é necessária para acionar o problema. **Recommendations** Atualize o Erlang/OTP para a versão 27.3.4.17 ou posterior. Atualize o Erlang/OTP para a versão 28.5.0.6 ou posterior. Atualize o Erlang/OTP para a versão 29.0.6 ou posterior. Atualize o snmp para a versão 5.18.2.1 ou posterior. Atualize o snmp para a versão 5.20.2.2 ou posterior. Atualize o snmp para a versão 5.20.5 ou posterior.
PT-2026-84256
6.9
2026-09-01
Mstdlib · Stdlib · CVE-2026-59696
**Nome do Software Vulnerável e Versões Afetadas** Erlang/OTP versões 21.0 até 27.3.4.16 Erlang/OTP versões 28.0 até 28.5.0.5 Erlang/OTP versões 29.0 até 29.0.5 stdlib versões 3.5 até 6.2.2.4 stdlib versões 7.0 até 7.3.0.1 stdlib versões 8.0 até 8.0.3 **Description** A validação inadequada da quantidade especificada na entrada no stdlib permite que um invasor remoto degrade a disponibilidade ao fornecer uma URI cujo componente de porta seja uma sequência muito longa de dígitos. A função `uri string:get port/1` passa a substring da porta para `binary to integer/1` sem limite de comprimento. Consequentemente, uma porta sintaticamente válida de até aproximadamente 1,26 milhão de dígitos pode ser convertida com sucesso, consumindo centenas de milissegundos de aritmética de precisão arbitrária no processo solicitante. Essa conversão é alcançada por todos os caminhos de análise de autoridade em `uri string:parse/1`, incluindo as formas de host, nome registrado, IPv4 e IPv6. Qualquer aplicação que utilize `uri string:parse/1` para analisar URIs fornecidas por invasores está exposta. **Recommendations** Atualize o Erlang/OTP para a versão 27.3.4.17 ou posterior. Atualize o Erlang/OTP para a versão 28.5.0.6 ou posterior. Atualize o Erlang/OTP para a versão 29.0.6 ou posterior. Atualize o stdlib para a versão 6.2.2.5 ou posterior. Atualize o stdlib para a versão 7.3.0.2 ou posterior. Atualize o stdlib para a versão 8.0.4 ou posterior.
PT-2026-83142
5.9
2026-08-28
Elixir · Elixir · CVE-2026-75758
**Nome do Software Vulnerável e Versões Afetadas** Elixir versões 1.15.0-rc.0 até 1.18.4 Elixir versões 1.19.0-rc.0 até 1.19.5 Elixir versões 1.20.0-rc.0 até 1.20.3 **Description** Um problema de recursão descontrolada na biblioteca padrão permite que um invasor que controle uma lista passada para as funções `inspect/1`, `List.to string/1` ou `List.to charlist/1` esgote a memória de um nó BEAM. O problema ocorre quando o prefixo imprimível de uma lista excede o `:printable limit` (4096 elementos por padrão), mas contém um elemento subsequente que não é um ponto de código válido, como um átomo ou um inteiro fora do intervalo. Isso faz com que a lista seja classificada incorretamente como uma charlist, resultando em um `ArgumentError`. Em `List.to string/1` e `List.to charlist/1`, a cláusula de resgate tenta construir uma mensagem de erro chamando `inspect(list)`, o que aciona novamente o mesmo caminho de erro. Como essa recursão não está em posição de cauda, a pilha do processo cresce até que o nó fique sem memória ou o processo seja encerrado pelo `max heap size`. **Recommendations** Atualize o Elixir para a versão 1.18.5 ou posterior. Atualize o Elixir para a versão 1.19.6 ou posterior. Atualize o Elixir para a versão 1.20.4 ou posterior. Como solução temporária, instale uma função de inspeção global via callback de inicialização da aplicação usando `Inspect.Opts.default inspect fun/1` com `fn term, opts -> Inspect.inspect(term, %{opts | charlists: :as lists}) end` para evitar que o ramo de charlist seja acessado.
PT-2026-69436
2.1
2026-08-10
Unknown · Phoenix Live View · CVE-2026-64941
**Nome do Software Vulnerável e Versões Afetadas** phoenix live view versões 0.5.0 até 1.0.18 phoenix live view versões 1.1.0-rc.0 até 1.1.32 phoenix live view versões 1.2.0-rc.0 até 1.2.8 **Description** Um problema de Redirecionamento Aberto (Open Redirect) existe onde um invasor pode redirecionar o navegador de uma vítima para uma origem arbitrária. Isso ocorre porque a função `redirect/2` utiliza `validate local url!/2` para garantir que o destino seja um caminho local, mas falha ao não rejeitar caracteres de tabulação ASCII, LF ou CR. Como os navegadores removem esses caracteres antes de analisar a URL, um valor como `/<TAB>/example.com` ignora a validação e é interpretado como uma URL relativa ao esquema. A função `push patch/2` também é afetada em versões anteriores a 0.7.0. O problema é acionado quando a aplicação passa um valor influenciado externamente como o parâmetro `:to`, como um parâmetro `return to` durante o login ou um destino de navegação de um payload `handle event/3`. **Recommendations** Atualize o phoenix live view para a versão 1.0.19 ou posterior. Atualize o phoenix live view para a versão 1.1.33 ou posterior. Atualize o phoenix live view para a versão 1.2.9 ou posterior. Rejeite qualquer valor não confiável que contenha tabulação ASCII, LF ou CR antes de passá-lo como o parâmetro `:to` para `redirect/2` ou `push patch/2` (para versões anteriores a 0.7.0). Mapeie os destinos de navegação fornecidos pelo cliente para um conjunto fixo de caminhos conhecidos e seguros em vez de encaminhar o valor diretamente.
PT-2026-68317
8.8
2026-08-05
Livebook · Livebook · CVE-2026-66298
**Nome do Software Vulnerável e Versões Afetadas** livebook versões 0.5.0 até 0.18.6 livebook versões 0.19.0 até 0.19.8 **Description** Um erro de validação de origem permite que JavaScript de saída de notebook não confiável acione atalhos de teclado de toda a sessão. O recurso JS-view renderiza JavaScript em um iframe sandboxed de origem cruzada. No entanto, o shell do iframe em `iframe/priv/static/iframe/v5.html` encaminha eventos `keydown` para a página pai sem verificar `Event.isTrusted`. Consequentemente, eventos sintetizados via `window.dispatchEvent` são tratados como pressões de tecla genuínas. O relé em `assets/js/hooks/js view.js` redistribui esses eventos, que são então processados pelo manipulador de atalhos global em `assets/js/hooks/session.js` durante a fase de captura. Isso permite que scripts sandboxed executem atalhos em `LivebookWeb.SessionLive`, como forçar a avaliação de todas as células no notebook ou reiniciar o runtime, o que descarta o estado na memória. Um terceiro atalho pode excluir a célula focada. O impacto mais crítico é a avaliação completa forçada, que executa o código Elixir do notebook sem o consentimento do usuário. Isso pode ocorrer quando um usuário abre um notebook de terceiros ou de documentação publicada, e o efeito é espelhado para todos os colaboradores conectados. **Recommendations** Atualizar livebook versões 0.5.0 até 0.18.6 para a versão 0.18.7. Atualizar livebook versões 0.19.0 até 0.19.8 para a versão 0.19.9.
PT-2026-68318
8.1
2026-08-05
Livebook · Livebook · CVE-2026-66881
**Nome do Software Vulnerável e Versões Afetadas** livebook versões 0.11.0 a 0.18.6 livebook versões 0.19.0 a 0.19.8 **Description** Um problema de Relative Path Traversal permite que um invasor grave um arquivo com conteúdo controlado em um caminho arbitrário no sistema. Isso ocorre porque o caminho de importação em `Livebook.LiveMarkdown.Import.file entry metadata to attrs/1` recebe o nome da fonte do notebook literalmente, sem validação. Para entradas de arquivo do tipo URL, a função `Livebook.Session.file entry cache file/2` resolve o nome abaixo do diretório temporário da sessão sem verificar se o resultado permanece dentro desse diretório. Além disso, `Livebook.FileSystem.Utils.resolve unix like path/2` colapsa segmentos de diretórios pai, mas limita apenas na raiz do sistema de arquivos. Consequentemente, quando o conteúdo é solicitado e não existe cache, o sistema grava o corpo da resposta no caminho resolvido, criando diretórios pai conforme necessário. Isso permite que um invasor controle tanto o destino quanto o conteúdo do arquivo gravado em qualquer lugar onde o processo tenha permissões de gravação. Uma falta de verificação de contenção semelhante existe em `Livebook.Session.to attachment file entry/2`. Uma vítima aciona isso ao abrir um notebook fornecido por um invasor e fazer com que a entrada seja buscada dentro de sua sessão autenticada. **Recommendations** Atualizar livebook versões 0.11.0 a 0.18.6 para a versão 0.18.7. Atualizar livebook versões 0.19.0 a 0.19.8 para a versão 0.19.9.
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-51499
8.7
2026-06-23
Plug · Plug · CVE-2026-54892
**Nome do Software Vulnerável e Versões Afetadas** plug versões 1.15.0 até 1.15.4 plug versão 1.16.4 plug versão 1.17.2 plug versão 1.18.3 plug versão 1.19.3 **Description** A complexidade algorítmica ineficiente no decodificador de parâmetros aninhados permite que um invasor remoto não autenticado cause a negação de serviço. As funções `Plug.Conn.Query.decode/4` e `Plug.Conn.Query.decode each/2` analisam strings de consulta e corpos de requisição application/x-www-form-urlencoded. Quando uma chave contém muitos segmentos entre colchetes, o decodificador executa uma operação de mapa para cada nível de aninhamento usando um prefixo binário da chave em constante crescimento, resultando em um custo de decodificação quadrático. Com um limite de corpo padrão de 1.000.000 de bytes, uma única requisição pode conter aproximadamente 333.000 níveis de aninhamento, saturando um agendador BEAM por vários minutos. Um pequeno número de requisições simultâneas pode saturar todos os agendadores, tornando o servidor inoperante. Este problema envolve o arquivo lib/plug/conn/query.ex e as rotinas `Plug.Conn.Query.decode/4`, `Plug.Conn.Query.decode each/2`, `Plug.Conn.Query.split keys/6`, `Plug.Conn.Query.insert keys/3` e `Plug.Conn.Query.finalize pointer/2`. **Recommendations** Atualizar plug versões 1.15.0 até 1.15.4 para a versão 1.15.5. Atualizar plug versão 1.16.4 para uma versão não vulnerável. Atualizar plug versão 1.17.2 para uma versão não vulnerável. Atualizar plug versão 1.18.3 para uma versão não vulnerável. Atualizar plug versão 1.19.3 para uma versão não vulnerável.