Rubygems · Net::Imap · CVE-2026-42257
**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()` e `search()`: o parâmetro `criteria` é enviado de forma bruta quando é uma string.
- `uid fetch()` e `fetch()`: o parâmetro `attr` é enviado de forma bruta quando é uma string ou um array de strings.
- `uid store()` e `store()`: o parâmetro `attr` é enviado de forma bruta quando é uma string.
- `setquota()`: o parâmetro `limit` é 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.