PT-2026-71039 · Cpan · Net::Cidr::Set
CVE-2026-19566
·
Publicado
2026-08-12
·
Atualizado
2026-08-19
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
Net::CIDR::Set versões anteriores a 0.23
Description
Comprimentos de prefixo IPv6 não limitados podem levar ao esgotamento de memória e à criação de intervalos de conjunto malformados. O método
encode() aceita qualquer comprimento de prefixo que corresponda a (0|[1-9][0-9]*) e o passa para width2bits(), que constrói uma máscara como uma string com um caractere por bit. Subsequentemente, o método inc() desempacota essa máscara em um array Perl, significando que o comprimento do prefixo determina diretamente o tamanho da alocação de memória. Por exemplo, um comprimento de prefixo de 100000000 pode resultar em uma string de 100 MB e um array de 12,5 milhões de elementos.Como a função
contains() constrói um conjunto a partir de seu argumento e guess coder() tenta usar o codificador IPv6 antes de rejeitar comprimentos de prefixo excessivos durante as verificações de largura de endereço misto, qualquer chamador que passe entradas não confiáveis para contains() ou add() pode esgotar a memória do processo. Além disso, comprimentos de prefixo superiores a 128 são armazenados como intervalos que não correspondem ao bloco solicitado, causando problemas onde a função contains() retorna falso para seu próprio endereço base e a remoção de uma entrada exclui o endereço base enquanto o conjunto ainda indica cobertura.Recommendations
Atualize o Net::CIDR::Set para a versão 0.23 ou posterior.
Como mitigação temporária, restrinja ou valide entradas não confiáveis passadas para as funções
contains() e add() para garantir que os comprimentos de prefixo não excedam 128.Exploit
Correção
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Net::Cidr::Set