For the English version of this alert, click here.
Allele Security Alert
ASA-2019-00367
Identificador(es)
ASA-2019-00367, CVE-2019-11479, NFLX-2019-001
Título
O consumo excessivo de recursos para conexões TCP com baixo MSS permite a negação remota de serviço
Fabricante(s)
Linux foundation
Produto(s)
Linux kernel
Versão(ões) afetada(s)
Todas as versões do Linux kernel
Versão(ões) corrigida(s)
Linux kernel stable versão 4.4.182
Linux kernel stable versão 4.9.182
Linux kernel stable versão 4.14.127
Linux kernel stable versão 4.19.52
Linux kernel stable versão 5.1.11
Linux kernel com os seguintes commits aplicados:
tcp: add tcp_min_snd_mss sysctl
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=5f3e2bf008c2221478101ee72f5cb4654b9fc363
tcp: enforce tcp_min_snd_mss in tcp_mtu_probing()
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=967c05aee439e6e5d7d805e195b3a20ef5c433d6
Prova de conceito
Desconhecido
Descrição
Uma falha de consumo excessivo de recursos foi encontrada na forma como o subsistema de rede do kernel Linux processava os segmentos TCP. Se o Maximum Segment Size (MSS) de uma conexão TCP for definido para valores baixos, como 48 bytes, pode deixar apenas 8 bytes para os dados do usuário, o que aumenta significativamente a utilização de recursos do kernel do Linux (CPU, Memória e Largura de Banda). Um atacante remoto pode usar essa falha para causar uma negação de serviço (DoS) enviando repetidamente o tráfego de rede em uma conexão TCP com TCP MSS baixo.
Detalhes técnicos
Alguns peers TCP anunciam uma opção MSS muito pequena em suas mensagens SYN e/ou SYN/ACK.
Isso força a pilha a enviar pacotes com uma sobrecarga de rede/cpu muito alta.
O Linux impôs um valor mínimo de 48. Como esse valor inclui o tamanho das opções de TCP e que as opções podem consumir até 40 bytes, isso significa que cada segmento pode incluir apenas 8 bytes de payload.
Em alguns casos, pode ser útil aumentar o valor mínimo para um valor mais seguro.
Ainda deixamos o padrão para 48 (TCP_MIN_SND_MSS), por motivos de compatibilidade.
Observe que a opção de soquete TCP_MAXSEG impõe um valor mínimo de (TCP_MIN_MSS). David Miller aumentou este valor mínimo em commit c39508d6f118 (“tcp: Make TCP_MAXSEG minimum more correct.”) De 64 para 88.
Poderíamos no futuro mesclar TCP_MIN_SND_MSS e TCP_MIN_MSS.
Se o teste do mtu estiver habilitado, o tcp_mtu_probing() poderia muito bem acabar com um MSS muito pequeno.
Use o novo sysctl tcp_min_snd_mss para garantir que a pesquisa MSS seja executada em um intervalo aceitável.
CVE-2019-11479 – tcp mss codificado para 48
Solução alternativa
Bloqueie conexões com um MSS baixo usando filtros. Observe que esses filtros podem quebrar conexões legítimas que dependem de um MSS baixo. Além disso, observe que essa mitigação só é efetiva se o teste TCP estiver desabilitado (ou seja, o sysctl net.ipv4.tcp_mtu_probing é definido como 0, que parece ser o valor padrão para esse sysctl).
Créditos
Jonathan Looney (Netflix Information Security)
Referência(s)
Linux and FreeBSD Kernel: Multiple TCP-based remote denial of service vulnerabilities
https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001.md
Linux and FreeBSD Kernel: Multiple TCP-based remote denial of
service issues
https://www.openwall.com/lists/oss-security/2019/06/17/5
Bug 1719129 (CVE-2019-11479) – CVE-2019-11479 kernel: tcp: excessive resource consumption for TCP connections with low MSS allows remote denial of service
https://bugzilla.redhat.com/show_bug.cgi?id=1719129
SACK Panic and Other TCP Denial of Service Issues
https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SACKPanic
CVE-2019-11477, CVE-2019-11478, CVE-2019-11479
https://blog.mikrotik.com/security/cve-2019-11477-cve-2019-11478-cve-2019-11479.html
tcp: add tcp_min_snd_mss sysctl
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=5f3e2bf008c2221478101ee72f5cb4654b9fc363
tcp: enforce tcp_min_snd_mss in tcp_mtu_probing()
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=967c05aee439e6e5d7d805e195b3a20ef5c433d6
Advisory: TCP SACK PANIC kernel vulnerability
https://community.sophos.com/kb/en-us/134237
CVE-2019-11479
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11479
CVE-2019-11479
https://nvd.nist.gov/vuln/detail/CVE-2019-11479
https://access.redhat.com/security/cve/CVE-2019-11479
CVE-2019-11479 | SUSE
https://www.suse.com/security/cve/CVE-2019-11479
CVE-2019-11479 in Ubuntu
https://people.canonical.com/~ubuntu-security/cve/CVE-2019-11479.html
CVE-2019-11479
https://security-tracker.debian.org/tracker/CVE-2019-11479
Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.
Última modificação: 8 dezembro 2019