ASA-2018-00055 – Glibc: A função __if_nametoindex() pode não fechar descriptor


For the English version of this alert, click here.

Allele Security Alert

ASA-2018-00055

Identificador(es)

ASA-2018-00055, CVE-2018-19591

Título

A função __if_nametoindex() pode não fechar descriptor

Fabricante(s)

GNU Project

Produto(s)

glibc

Versão(ões) afetada(s)

glibc 2.26, 2.27, 2.28

Versão(ões) corrigida(s)

glibc 2.29

Prova de conceito

Sim

Descrição

Um vazamento de file descriptor na função __if_nametoindex() pode conduzir a negação de serviço devido a exaustão de recursos ao processar chamadas getaddrinfo() com hostnames especialmente criados.

Detalhes técnicos

Em sysdeps/unix/sysv/linux/if_index.c, __if_nametoindex() cria um socket descriptor mas não o fecha se o parâmetro ifname é muito longo.

Além disso, é possível chamar getaddrinfo() com um parâmetro ‘node‘ especialmente criado que conduzirá para o código vulnerável em __if_nametoindex().

Em resumo, resoluções de hostnames não confiável (via getaddrinfo()) causará exaustão de descriptors. patch pode ser encontrado abaixo:

--- a/sysdeps/unix/sysv/linux/if_index.c
+++ b/sysdeps/unix/sysv/linux/if_index.c
@@ -45,6 +45,7 @@ __if_nametoindex (const char *ifname)

if (strlen (ifname) >= IFNAMSIZ)
{
+ __close_nocancel_nostatus (fd);
__set_errno (ENODEV);
return 0;
}

Créditos

Guido Vranken

Referência(s)

CVE-2018-19591: glibc if_nametoindex may not close descriptor
https://seclists.org/oss-sec/2018/q4/186

Bug 23927 (CVE-2018-19591) – Linux if_nametoindex() does not close descriptor (CVE-2018-19591)
https://sourceware.org/bugzilla/show_bug.cgi?id=23927

[PATCH] CVE-2018-19591: if_nametoindex: Fix descriptor for overlong name [BZ #23927]
https://sourceware.org/ml/libc-alpha/2018-11/msg00698.html

CVE-2018-19591
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19591

CVE-2018-19591
https://nvd.nist.gov/vuln/detail/CVE-2018-19591

Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.

Última modificação: 1 fevereiro 2019

Não somos responsáveis por qualquer perda de dados, corrupção de dispositivos ou qualquer outro tipo de problema devido ao uso de qualquer informação mencionada em nossos alertas de segurança.