Em 25 de outubro último, a equipe do projeto OpenSSL anunciou a descoberta de uma vulnerabilidade, inicialmente classificada como de severidade “CRÍTICA”, no OpenSSL versão 3. Embora esse código seja muito robusto, a última vez que reportamos uma vulnerabilidade “CRÍTICA” no OpenSSL foi em 2016.
O que é o OpenSSL?
O OpenSSL é uma implementação de código aberto dos protocolos SSL e TLS, amplamente usada na Internet para comunicação segura entre sistemas e aplicações. Além disso, ele integra vários sistemas operacionais e uma ampla variedade de softwares. Como resultado, grande parte das comunicações seguras na Internet utiliza o OpenSSL.
O que se descobriu?
No último dia 1º de novembro, a OpenSSL Foundation relatou que, na verdade, tratam-se de duas vulnerabilidades. Portanto, corrigimos essas vulnerabilidades no mesmo dia com o lançamento da versão 3.07 do OpenSSL.
Catalogamos as vulnerabilidades como:
CVE-2022–3602: X.509 Email Address 4-byte Buffer Overflow [1]
CVE-2022–3786: X.509 Email Address Variable Length Buffer Overflow [2]
Onde estão as vulnerabilidades?
Diferentes distribuições Linux geralmente vêm com a biblioteca OpenSSL. Assim, fornecemos o OpenSSL vulnerável nas principais versões de Linux, que são as seguintes:
- Red Hat Enterprise Linux 9
- Ubuntu 22.04+
- CentOS Stream9
- Kali 2022.3
- Debian 12
- Fedora 36
Como verificar?
É importante verificar se, e qual, versão do OpenSSL está sendo utilizada no seu sistema ou servidor. Portanto, sistemas que utilizam a versão OpenSSL 3.x.x devem atualizar para a versão 3.0.7 ou superior. Por outro lado, o OpenSSL versão 1.x.x não é afetado.
Dessa forma, para verificar qual versão está sendo utilizada, digite na janela de terminal do seu sistema o seguinte comendo:
$ openssl version
ubuntu@ubuntu:~$ openssl version
OpenSSL 1.1.1n 15 Mar 2022
Se o sistema estiver com OpenSSL 3 ela deve ser igual ou superior à versão 3.0.7. Atualize as versões 3.0.0 a 3.0.6, pois elas são vulneráveis.
Computadores Apple com sistema operacional macOS NÃO são afetados, porque usam, por padrão, a biblioteca LibreSSL para implementar o protocolo SSL. Entretanto, também é importante verificar se não houve instalação manual do OpenSSL para execução de alguma aplicação.
O comando é o mesmo no mac OS:
$ openssl version
Deve obter a saída:
Skynet:~ adriano$ openssl version
LibreSSL 2.8.3
Qualquer que seja a versão, a LibreSSL não é vulnerável.
A BoringSSL, que é a versão do OpenSSL usada no Google Chrome, também não é vulnerável.
Como obter a nova versão?
A versão de referência, mais recente, pode ser obtida sempre no site da OpenSSL e deve ser a versão 3.0.7 ou posterior.
Entretanto, a maioria dos sistemas atuais possui mecanismos de instalação ou atualização automática. Verifique diretamente seu sistema, caso a caso.
Devo me preocupar?
O anúncio dessa vulnerabilidade chamou muito a atenção por causa do uso mundialmente abrangente do OpenSSL.
Entretanto, não há motivo para pânico, pois a maioria das instalações, inclusive no Brasil, utiliza o OpenSSL 1.1 e 1.2 e não é afetada por este problema. Mesmo assim, todos devem atualizar para uma nova versão o mais rápido possível. Ainda que, no momento, não existam ferramentas de ataque publicamente disponíveis, elas podem surgir à medida que a vulnerabilidade se torne mais conhecida.
Segundo explicou a OpenSSL Foundation:
“Pré-anúncios da vulnerabilidade qualificaram este problema como ‘CRÍTICO’. Análises posteriores com base em alguns dos fatores atenuantes descritos acima levaram este valor a ser rebaixado para ‘ALTO’ “.
Em razão das características dessas vulnerabilidades, notadamente com relação à baixa utilização do OpenSSL V.3 e da inexistência de ferramenta pública de ataque, as probabilidades de exploração receberam o seguinte EPSS [3]:
CVE-2022–3786 (EPSS: 0.01669) = 1,7% de probabilidade de exploração.
CVE-2022–3602 (EPSS: 0.05315) = 5,3% de probabilidade de exploração.
O que tais vulnerabilidade podem causar?
Até o momento de escrita desse documento, não há uma prova de conceito conhecida publicamente que explore essas duas vulnerabilidades.
Em tese, os ataques poderiam incluir: o acesso a conteúdos sensíveis da memória de servidores e de aplicações, revelando detalhes potencialmente privados; além disso, a exploração de ataques remotos para comprometer chaves criptográficas privadas do servidor; também, a execução remota de código, que ocorre quando um atacante consegue executar, à distância, um código malicioso no sistema alvo; ou ainda, ataques de negação de serviço e indisponibilidade.
Referências:
[1] https://www.cve.org/CVERecord?id=CVE-2022-3602
[2] https://www.cve.org/CVERecord?id=CVE-2022-3786
[3] EPSS — Exploit Prediction Scoring System: é um esforço aberto da comunidade de segurança, orientado por dados, para estimar a probabilidade de que uma vulnerabilidade de software seja explorada.