PT-2026-37049 · Rubygems+1 · Net::Imap+1
Manunio
·
Publicado
2026-05-04
·
Atualizado
2026-06-15
·
CVE-2026-42257
CVSS v3.1
9.8
Crítica
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Nome do Software Vulnerável e Versões Afetadas
Net::IMAP versões anteriores a 0.4.24
Net::IMAP versões anteriores a 0.5.14
Net::IMAP versões anteriores a 0.6.4
Descrição
Diversos comandos na biblioteca Ruby Net::IMAP aceitam argumentos de string bruta que são enviados ao servidor sem validação ou escape. Se essas strings forem derivadas de entradas controladas pelo usuário, elas podem conter sequências CRLF (Carriage Return Line Feed), permitindo que um invasor injete comandos IMAP arbitrários. Isso ocorre porque argumentos específicos são transformados em
Net::IMAP::RawData, ignorando a codificação normal.Detalhes técnicos sobre funções e parâmetros afetados:
uid search()esearch(): o parâmetrocriteriaé enviado de forma bruta quando é uma string.uid fetch()efetch(): o parâmetroattré enviado de forma bruta quando é uma string ou um array de strings.uid store()estore(): o parâmetroattré enviado de forma bruta quando é uma string.setquota(): o parâmetrolimité interpolado e enviado de forma bruta.
Recomendações
Atualize para a versão 0.4.24, 0.5.14 ou 0.6.4, dependendo do ramo de versão utilizado.
Como solução temporária, valide as entradas de string para critérios de pesquisa e atributos de busca, verificando a presença de caracteres
r e .
Restrinja as entradas controladas pelo usuário para o parâmetro attr em comandos de armazenamento a uma pequena lista enumerada ou utilize valores fixos (hard-coded).
Utilize Kernel#Integer para coagir e validar entradas controladas pelo usuário para o parâmetro limit na função setquota().
Prefira enviar critérios de pesquisa como um array de pares chave-valor em vez de uma string interpolada.Exploit
Correção
Command Injection
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Net::Imap
Ubuntu