CVE-2021-3712
Estouros de buffer de leitura ao processar strings ASN.1
- Publicado
- 24 de ago. de 2021
- Atualizado
- 16 de abr. de 2026
- Atribuindo CNA
- openssl
- Evidência observada
- 8 de ago. de 2026
CVSS primário
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:HAlto · próximos 30 dias
- Percentil
- 98,9%
- Data do modelo
- 21 de set. de 2026
EPSS é uma estimativa estatística, não uma certeza ou uma medida de impacto. Combine-o com CVSS, status KEV, exposição e seu ambiente.
Resumo
Strings ASN.1 são representadas internamente no OpenSSL como uma estrutura ASN1_STRING que contém um buffer que armazena os dados da string e um campo que armazena o comprimento do buffer. Isso contrasta com strings C normais, que são representadas como um buffer para os dados da string, terminado com um byte NUL (0). Embora não seja um requisito estrito, strings ASN.1 que são analisadas usando as próprias funções "d2i" do OpenSSL (e outras funções de análise semelhantes), bem como qualquer string cujo valor tenha sido definido com a função ASN1_STRING_set(), também terão o array de bytes na estrutura ASN1_STRING terminado em NUL. No entanto, é possível que aplicativos construam diretamente estruturas ASN1_STRING válidas que não terminam o array de bytes em NUL, definindo diretamente os campos "data" e "length" no array ASN1_STRING. Isso também pode acontecer com o uso da função ASN1_STRING_set0(). Verificou-se que diversas funções do OpenSSL que imprimem dados ASN.1 assumem que o array de bytes da ASN1_STRING será terminado em NUL, mesmo que isso não seja garantido para strings construídas diretamente. Quando um aplicativo solicita que uma estrutura ASN.1 seja impressa e essa estrutura ASN.1 contém ASN1_STRINGs que foram construídas diretamente pelo aplicativo sem terminar o campo "data" em NUL, pode ocorrer um estouro de buffer de leitura. O mesmo também pode ocorrer durante o processamento de restrições de nome (name constraints) de certificados (por exemplo, se um certificado foi construído diretamente pelo aplicativo em vez de ser carregado por meio das funções de análise do OpenSSL, e o certificado contém estruturas ASN1_STRING não terminadas em NUL). Também pode ocorrer nas funções X509_get1_email(), X509_REQ_get1_email() e X509_get1_ocsp(). Se um agente malicioso puder fazer com que um aplicativo construa diretamente uma ASN1_STRING e depois a processe por meio de uma das funções afetadas do OpenSSL, esse problema poderá ser acionado. Isso pode resultar em uma falha (causando um ataque de Negação de Serviço). Também pode resultar na divulgação de conteúdo de memória privada (como chaves privadas ou texto simples confidencial). Corrigido no OpenSSL 1.1.1l (Afetadas: 1.1.1-1.1.1k). Corrigido no OpenSSL 1.0.2za (Afetadas: 1.0.2-1.0.2y).
Fontes
1Uso responsável
Use informações de vulnerabilidade apenas em sistemas que você possui ou está autorizado a testar. O Kitploit vincula-se a metadados de pesquisa pública e não armazena código de exploração ou cargas maliciosas.