BLOG | NGINX

NGINX e o Aviso de Segurança OpenSSL de 5 de junho de 2014

NGINX-Parte-de-F5-horiz-preto-tipo-RGB
Miniatura de Owen Garrett
Owen Garrett
Publicado em 05 de junho de 2014

Qual é o impacto no NGINX do CVE‑2014‑0224 e das vulnerabilidades OpenSSL relacionadas?

O projeto OpenSSL anunciou correções para sete vulnerabilidades de segurança em 5 de junho de 2014. Os detalhes são descritos no Aviso de Segurança .

As vulnerabilidades afetam potencialmente qualquer aplicativo de servidor (incluindo NGINX e NGINX Plus) que use OpenSSL para encerrar o tráfego SSL/TLS. Eles podem ser explorados para criar um ataque do tipo man-in-the-middle (MitM) ou uma variedade de problemas de negação de serviço (DoS) e corrupção de dados:

  • Vulnerabilidade SSL/TLS MITM (CVE‑2014‑0224)
  • Falha de recursão DTLS (CVE‑2014‑0221)
  • Vulnerabilidade de fragmento inválido DTLS (CVE‑2014‑0195)
  • Desreferência de ponteiro NULL SSL_MODE_RELEASE_BUFFERS (CVE‑2014‑0198)
  • Injeção de sessão SSL_MODE_RELEASE_BUFFERS ou negação de serviço (CVE‑2010‑5298)
  • Negação anônima de serviço ECDH (CVE‑2014‑3470)
  • “Outras questões” (CVE‑2014‑0076)

A recomendação do projeto OpenSSL é a seguinte:

Usuários OpenSSL 0.9.8 SSL/TLS devem atualizar para 0.9.8za. Usuários OpenSSL 1.0.0 SSL/TLS devem atualizar para 1.0.0m.
Usuários de SSL/TLS do OpenSSL 1.0.1 devem atualizar para 1.0.1h.

A instalação do NGINX usa a instância do OpenSSL do seu fornecedor de sistema operacional?

As compilações NGINX e NGINX Plus fornecidas pela NGINX, Inc. (exceto aquelas para Windows) ou por meio de um repositório de terceiros geralmente são vinculadas dinamicamente à instância do sistema operacional de libssl.so . Execute o comando ldd para descobrir o caminho completo para o arquivo libssl.so e o comando strings para exibir o número da versão associada (neste caso, é 1.0.1f):

$ ldd `which nginx` | grep ssl libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f82e62bf000) $ strings /lib/x86_64-linux-gnu/libssl.so.1.0.0 | grep "^OpenSSL " OpenSSL 1.0.1f 6 de janeiro de 2014

A saída no seu sistema pode parecer um pouco diferente. Você também pode executar o openssl version , embora a saída possa não ser confiável se houver várias instâncias do OpenSSL no seu servidor.

Recomendamos fortemente que você atualize para a biblioteca OpenSSL mais recente fornecida pelo fornecedor do seu sistema operacional, mesmo que a versão anterior que você está executando não seja afetada. Em seguida, reinicie o software NGINX para usar a biblioteca atualizada. Verifique a resposta do seu fornecedor ao CVE-2014-0224 para determinar o processo de atualização correto. Para sua conveniência, aqui estão os links para Debian , Red Hat e Ubuntu .

Observe que alguns fornecedores de sistemas operacionais Linux lançaram pacotes corrigidos que ainda possuem um número de versão OpenSSL anterior, optando por incluir apenas a correção para CVE‑2014‑0224 e vulnerabilidades relacionadas em seus pacotes para fornecer uma pequena atualização rapidamente.

Sua instalação do NGINX usa uma instância estaticamente vinculada do OpenSSL?

Se você compilou o NGINX, pode ter vinculado estaticamente as bibliotecas OpenSSL. Neste caso, a saída do ldd não revela dependências na biblioteca libssl.so do sistema operacional. Execute nginx ‑V para exibir as opções de tempo de compilação que você usou:

$ ./objs/nginx -V versão nginx: nginx/1.7.1 construído por gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) configure argumentos: --with-cc-opt=-I../openssl-1.0.1f/include --with-ld-opt='-L../openssl-1.0.1f -Wl,-Bstatic -lssl -lcrypto -Wl,-Bdynamic -ldl' --with-openssl=../openssl-1.0.1f

Se você estiver usando uma versão vulnerável do OpenSSL, precisará recompilar o NGINX usando uma versão corrigida.

Você está usando os binários do NGINX para Windows?

O NGINX para Windows, distribuído pela NGINX , é vinculado estaticamente ao OpenSSL. As compilações atualmente disponíveis para 1.7.1 e 1.6.0 foram atualizadas com as correções do OpenSSL.


"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."