OpenSSL é um projeto de software livre baseado em SSLeay. Consiste em um pacote robusto de bibliotecas relacionadas à criptografia e ferramentas de administração, que fornecem funções criptográficas para outros pacotes, como OpenSSH e navegadores da web.
O lançamento de novas versões corretivas do OpenSSL (3.0.8 , 1.1.1t ) em que corrigiu uma vulnerabilidade perigosa (CVE-2023-0286) que permite que o conteúdo de áreas arbitrárias da memória do processo seja obtido durante o processamento de um processo controlado por uma lista de certificados revogados (CRL) ou token com carimbo de data/hora de um invasor.
Vulnerabilidade é causada por confusão de tipos ao processar um endereço X.400 na extensão X.509 GeneralName.
Em particular, um endereço X.400 foi analisado com o tipo ASN1_STRING, enquanto o campo x400Address na estrutura GENERAL_NAME foi analisado com o tipo ASN1_TYPE, resultando na comparação (GENERAL_NAME_cmp) contra ASN1_TYPE em vez de ASN1_STRING. Quando a verificação da lista de certificados revogados está habilitada (definindo o sinalizador X509_V_FLAG_CRL_CHECK no aplicativo), a vulnerabilidade permite que um invasor passe ponteiros arbitrários para a função memcmp, que pode ser usada para ler o conteúdo da memória ou iniciar uma finalização anormal do processo .
Na maioria das situações, um invasor deve ter controle sobre a lista de certificados revogados (CRL) usado e a cadeia de confiança do certificado para realizar um ataque bem-sucedido.
Um ataque também pode ser feito em caso de controle sobre um dos elementos especificados, mas, neste caso, o endereço X.400 deve aparecer como o ponto de distribuição da CRL, o que é bastante raro. Nesse sentido, supõe-se que a vulnerabilidade afeta principalmente aplicativos que usam sua própria implementação da funcionalidade de download de CRL pela rede.
Além do problema discutido, OpenSSL 3.0.8 também corrige várias vulnerabilidades menos perigoso:
- CVE-2022-4304: é um ataque de canal lateral que permite determinar os dados de origem medindo os atrasos da rede ao executar operações RSA usando os modos de propagação incremental PKCS#1 v1.5, RSA-OEAP e RSASVE. O ataque é uma variação do método Bleichenbacher, cuja essência é que o invasor, com base em uma reação diferente do servidor, pode separar os blocos Oracle de preenchimento corretos e incorretos usados para alinhar os dados criptografados ao longo do limite do bloco. Um ataque bem-sucedido requer o envio de um grande número de mensagens de sondagem para descriptografia.
Do lado prático, um ataque, por exemplo, pode ser usado para determinar o segredo mestre de uma conexão TLS, que o cliente transmite ao servidor de forma criptografada. Um invasor com a capacidade de interceptar a conexão entre o cliente e o servidor pode recuperar o valor do segredo mestre enviando um grande número de mensagens de teste ao servidor e analisando seu tempo de processamento. Depois que o segredo mestre é determinado, o invasor pode descriptografar os dados enviados pela conexão TLS em questão. - CVE-2022-4203: Buffer de leitura fora dos limites ao verificar certificados X.509 com campo de nome personalizado. O ataque pode travar o aplicativo ou vazar o conteúdo da memória de um processo no lado do cliente se ele se conectar a um servidor controlado pelo invasor ou no lado do servidor se o servidor solicitar autenticação de um cliente controlado pelo invasor.
- CVE-2023-0216: Referência de ponteiro incorreta ausente nas funções d2i_PKCS7(), d2i_PKCS7_bio() e d2i_PKCS7_fp() ao lidar com dados PKCS7 especialmente formatados. A vulnerabilidade pode causar a falha do processo.
- CVE-2023-0217: Cancelamento de referência do ponteiro NULL ao verificar a chave pública DSA na função EVP_PKEY_public_check().
- CVE-2023-0215: use-after-free acesso a uma área de memória na função BIO_new_NDEF usada para transmitir dados ASN.1 através da interface BIO.
- CVE-2022-4450: dupla liberação de memória após chamar a função PEM_read_bio_ex.
- CVE-2023-0401: Cancelamento de referência de ponteiro NULL ao validar dados PKCS7.
Das últimas 4 vulnerabilidades, presume-se que elas estejam limitadas à capacidade de iniciar um encerramento anormal do processo.
Por fim, se estiver interessado em saber mais sobre esta nova versão, pode consultar os detalhes em o seguinte link.