
OpenSSL DTLS CVE-2014-0221 Remote Denial
OpenSSL DTLS CVE-2014-0221 Negação Remota
Segurança da Camada de Transporte de Datagrama. *Camada física
Suporte a datagramas da camada TCP: TLS
Suporte a datagramas da camada UDP: DTLS: Através de modificações apropriadas no processo de Handshake, lida com troca de chaves, autenticação, configuração de parâmetros de segurança, etc., e suporta comunicação segura confiável sobre UDP, que possui características de não-conexão, através de timeout e retransmissão.
DTLS é a sigla para Datagram Transport Layer Security, um protocolo para fornecer segurança em comunicações baseadas em UDP (User Datagram Protocol). TLS (Transport Layer Security) é usado principalmente para fornecer segurança em comunicações baseadas em TCP (Transmission Control Protocol), mas como o UDP não é orientado à conexão e é um protocolo baseado em pacotes, é difícil aplicar o TLS diretamente. Para fornecer segurança nessas comunicações baseadas em UDP, o DTLS foi projetado.
O DTLS é muito semelhante à estrutura básica do TLS, mas existem algumas diferenças principais:
O DTLS é utilizado principalmente para fornecer segurança em ambientes que usam UDP, como VoIP (chamadas de voz), streaming multimídia, servidores de jogos, etc.
Por que OpenSSL?: O que é DTLS: TLS baseado em UDP, DTLS 1.0 foi implementado no OpenSSL.
Vulnerabilidade que permite descriptografar dados transmitidos e manipular dados entre servidor/cliente através de ataque Man-in-the-Middle (MITM) com handshake manipulado (CVE-2014-0224)
Vulnerabilidade que permite ataque de negação de serviço ao enviar um handshake DTLS anormal para um cliente OpenSSL DTLS (CVE-2014-0221)
Vulnerabilidade que permite execução de código arbitrário ao enviar um fragmento DTLS anormal para um cliente ou servidor OpenSSL DTLS (CVE-2014-0195)
Vulnerabilidade de execução de código arbitrário devido a uma falha na função do_ssl3_write (CVE-2014-0198)
Esta vulnerabilidade ocorre quando a opção SSL_MODE_RELEASE_BUFFERS está ativada no OpenSSL 1.0.0 e 1.0.1 (esta opção está desativada por padrão)
Vulnerabilidade de condição de corrida (race condition) na função ssl3_read_bytes que permite a um invasor injetar dados na sessão ou realizar negação de serviço (CVE-2010-5298)
Esta vulnerabilidade ocorre em aplicações multithread que usam OpenSSL 1.0.0 e 1.0.1 com a opção SSL_MODE_RELEASE_BUFFERS ativada (esta opção está desativada por padrão)
Vulnerabilidade que pode causar negação de serviço em clientes OpenSSL TLS com conjuntos de cifras anônimos ECDH ativados (CVE-2014-3470)
OpenSSL versões 0.9.8
OpenSSL versões 1.0.0
OpenSSL versões 1.0.1
Entre eles, o CVE-2014-0221 é uma vulnerabilidade que permite ataque de negação de serviço ao enviar um handshake DTLS anormal para um cliente OpenSSL DTLS.
< Vulnerabilidade de negação de serviço DTLS (CVE-2014-0221) >
O DTLS (Datagram Transport Layer Security) é um protocolo baseado em TLS que permite transmitir datagramas criptografados.
Ao enviar uma mensagem de handshake DTLS anormal (mensagem DTLS Hello) para um cliente DTLS, o OpenSSL pode entrar em um estado recursivo, permitindo um ataque de negação de serviço
if(!s->server && s->d1->r_msg_hdr.frag_off == 0 && wire[0] == SSL3_MT_HELLO_REQUEST) {
if(wire[1] == 0 && wire[2] == 0 && wire[3] == 0) {
if(s->msg_callback)
s->msg_callback(0, s->version, SSL3_RT_HANDSHAKE,
wire, DTLS1_HM_HEADER_LENGTH, s, s->msg_callback_arg);
s->init_num = 0;
return dtls1_get_message_fragment(s, st1, stn, max, ok);
}
else {
al=SSL_AD_UNEXPECTED_MESSAGE;
SSLerr(SSL_F_DTLS1_GET_MESSAGE_FRAGMENT,SSL_R_UNEXPECTED_MESSAGE);
goto f_err;
}
}