Versão da biblioteca do sistema Glibc 2.32

Após seis meses de desenvolvimento publicado lançamento da biblioteca do sistema Biblioteca GNU C (glibc) 2.32, que atende integralmente aos requisitos da ISO C11 e POSIX.1-2017. A nova versão inclui correções de 67 desenvolvedores.

Implementado em Glibc 2.32 melhorias você pode observar:

  • Adicionado suporte para processadores Synopsys ARC HS (ARCv2 ISA). A porta requer pelo menos binutils 2.32, gcc 8.3 e Linux kernel 5.1 para funcionar. Três variantes de ABI são suportadas: arc-linux-gnu, arc-linux-gnuhf e arceb-linux-gnu (big-endian);
  • Carregamento dos módulos de auditoria especificados nas seções DT_AUDIT e
    DT_DEPAUDIT do arquivo executável.

  • Para a arquitetura powerpc64le, é implementado suporte para o tipo IEEE128 long double, que é habilitado na construção com a opção “-mabi=ieeelongdouble”.
  • Algumas APIs são anotadas com o atributo 'acesso' do GCC, que permite que melhores avisos sejam gerados quando compilados no GCC 10 para detectar possíveis buffer overflows e outros cenários fora dos limites.
  • Para sistemas Linux, as funções pthread_attr_setsigmask_np e
    pthread_attr_getsigmask_np, que dá ao aplicativo a capacidade de especificar uma máscara de sinal para threads criados usando pthread_create.

  • Dados de codificação, informações de tipo de caractere e tabelas de transliteração foram atualizados para suportar a especificação Unicode 13.0.0;
  • Adicionado novo arquivo de cabeçalho , que define a variável __libc_single_threaded, que pode ser usada em aplicativos para otimizações de thread único.
  • Adicionadas funções sigabbrev_np e sigdescr_np que retornam o nome abreviado e a descrição do sinal (por exemplo, “HUP” e “Hangup” para SIGHUP).
  • Adicionadas funções strerrorname_np e strerrordesc_np que retornam o nome e a descrição do erro (por exemplo, "EINVAL" e "Argumento inválido" para EINVAL).
  • Para a plataforma ARM64, um sinalizador "--enable-standard-branch-protection" foi adicionado (ou -mbranch-protection=standard no GCC), que permite que o mecanismo ARMv8.5-BTI (Branch Target Indicator) proteja o execução de conjuntos de instruções que não deveriam ser executadas.transições de ramificação. O bloqueio de transições para seções arbitrárias de código é implementado para evitar a criação de gadgets em explorações que usam técnicas de programação orientada a retorno (ROP - Return-Oriented Programming; o invasor não tenta colocar seu código na memória, mas opera em peças já existentes de instruções de máquina que terminam com uma instrução de controle de retorno, a partir da qual é construída uma cadeia de chamadas para obter a funcionalidade desejada).
  • Uma grande limpeza de recursos desatualizados foi realizada, incluindo a remoção das opções “--enable-obsolete-rpc” e “--enable-obsolete-nsl”, arquivo de cabeçalho . As funções sstk, siginterrupt, sigpause, suspiroold, sigrelse, sigignore e sigset, os arrays sys_siglist, _sys_siglist e sys_sigabbrev, os símbolos sys_errlist, _sys_errlist, sys_nerr e _sys_nerr, e o módulo NSS hesiod foram descontinuados.
  • O ldconfig foi movido por padrão para usar o novo formato ld.so.cache, que é suportado na glibc há quase 20 anos.
  • Vulnerabilidades corrigidas:
    • CVE-2016-10228 – Um loop no utilitário iconv ocorre quando executado com a opção “-c” ao processar dados multibyte incorretos.
    • CVE-2020-10029 Corrupção de pilha ao chamar funções trigonométricas com um argumento pseudonulo.
    • CVE-2020-1752 - Um acesso à memória use-after-free na função glob ao expandir uma referência ao diretório inicial (“~user”) em caminhos.
    • CVE-2020-6096 – Tratamento incorreto na plataforma ARMv7 de valores de parâmetros negativos em memcpy() e memmove(), que determina o tamanho da área copiada. Permite organizar a execução do código ao processar dados formatados de uma determinada maneira nas funções memcpy() e memmove(). É significativo que o problema permaneceu sem correção por quase dois meses desde que a informação foi divulgada publicamente e cinco meses desde que os desenvolvedores do Glibc foram notificados.

Fonte: opennet.ru

Adicionar um comentário