CVE-2020-13777: Vulnerabilidade do GnuTLS encontrada oculta por 2 anos

A vulnerabilidade no GnuTLS denominada CVE-2020-13777, é uma biblioteca de código aberto amplamente adotada que usa TLS (Transport Layer Security)

Segundo relatos, a vulnerabilidade está presente na biblioteca por aproximadamente 2 anos, tornando as sessões resumidas do TLS 1.3 abertas para ataques. A vulnerabilidade foi observada no GnuTLS 3.6.4 em setembro de 2018 e foi abordada posteriormente na versão mais recente do GnuTLS 3.6.14 em 3 de junho de 2020.

CVE-2020-13777 Vulnerabilidade explicada

É relatado que esse bug realmente permitia que os servidores GnuTLS usassem tickets de sessão emitidos durante a sessão TLS 1.3 segura anterior, sem utilizar a função que cria chaves secretas:

gnutls_session_ticket_key_generate ()

Aproveitando essa vulnerabilidade, os invasores podem burlar a autenticação no TLS 1.3, recuperando as conversas anteriores no TLS 1.2.

De acordo com o que o pesquisador chamado Airtower tem a dizer:

“Os servidores GnuTLS podem usar tickets emitidos um pelo outro sem acesso à chave secreta gerada por gnutls_session_ticket_key_generate (). Isso permite que um servidor MITM sem credenciais válidas retome as sessões com um cliente que primeiro estabeleceu uma conexão inicial com um servidor com credenciais válidas. O problema se aplica ao TLS 1.3, quando o reinício do TLS 1.2 falha conforme o esperado. ”

Os pesquisadores de segurança notaram esse problema primeiro no Ubuntu versão 3.6.13-2ubuntu1 e o criaram com uma nova compilação do master denominada 52e78fle.

Alguns pesquisadores também estão argumentando que o GnuTLS deve ser eliminado como uma dependência, enquanto muitos deles expressaram seu desdém contra a biblioteca também, de acordo com o apontado pelo TheRegister.

De acordo com o dicionário MITRE CVE, a descrição de CVE-2020-13777 é descrita como:

“O GnuTLS 3.6.x antes do 3.6.14 usa criptografia incorreta para criptografar um ticket de sessão (uma perda de confidencialidade no TLS 1.2 e um desvio de autenticação no TLS 1.3). A versão afetada mais antiga é 3.6.4 (2018-09-24) devido a um erro em uma confirmação 2018-09-18. Até a primeira rotação de chave, o servidor TLS sempre usa dados incorretos no lugar de uma chave de criptografia derivada de um aplicativo. ”

No entanto, não há mitigação identificada contra essa vulnerabilidade, conforme esclarecido pelo consultor da RedHat.