Lançamento da biblioteca de sistema Glibc 2.32

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

As implementações no Glibc 2.32 melhorias pode-se destacar:

  • Adicionada a compatibilidade com processadores Synopsys ARC HS (ARCv2 ISA). Para o funcionamento do port, é necessário pelo menos binutils 2.32, gcc 8.3 e o kernel Linux 5.1. Três variantes de ABI são suportadas: arc-linux-gnu, arc-linux-gnuhf e arceb-linux-gnu (big-endian);
  • Implementada a carga de módulos de auditoria, especificados nas seções DT_AUDIT e
    DT_DEPAUDIT do arquivo executável.
  • Para a arquitetura powerpc64le, foi adicionada a compatibilidade com o tipo IEEE128 long double, incluindo na construção com a opção '-mabi=ieeolongdouble'.
  • Algumas APIs foram anotadas usando o atributo ‘access’ do GCC, que permite gerar avisos de qualidade superior durante a compilação no GCC 10 ao determinar possíveis estouros de buffer e outras saídas de limites.
  • Para sistemas Linux, foram implementadas as funções pthread_attr_setsigmask_np e
    pthread_attr_getsigmask_np, que fornecem ao aplicativo a capacidade de especificar uma máscara de sinal para as threads criadas com pthread_create.
  • Os dados de codificações, informações sobre tipos de caracteres e tabelas de transliteração foram atualizados para suportar a especificação Unicode 13.0.0;
  • Adicionado um novo arquivo de cabeçalho <sys/single_threaded.h>, definindo a variável __libc_single_threaded, que pode ser utilizada em aplicações para otimizações de thread única.
  • 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, foi adicionado o sinalizador '—enable-standard-branch-protection' (ou -mbranch-protection=standard no GCC), ativando o mecanismo ARMv8.5-BTI (Branch Target Indicator) para proteger a execução de conjuntos de instruções que não devem ter transições durante o branching. O bloqueio de transições para áreas de código arbitrárias foi implementado para contrabalançar a criação de gadgets em exploits que utilizam técnicas de programação orientada a retorno (ROP - Return-Oriented Programming, onde o atacante não tenta inserir seu código na memória, mas opera com pedaços já existentes de instruções de máquina que terminam com uma instrução de retorno, formando uma cadeia de chamadas para obter a funcionalidade desejada).
  • Foi realizada uma grande limpeza das funcionalidades obsoletas, incluindo a remoção das opções «—enable-obsolete-rpc» e «—enable-obsolete-nsl», do cabeçalho <sys/sysctl.h>. As funções sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore e sigset, os arrays sys_siglist, _sys_siglist e sys_sigabbrev, e os símbolos sys_errlist, _sys_errlist, sys_nerr e _sys_nerr foram declarados obsoletos, assim como o módulo NSS hesiod.
  • O ldconfig, por padrão, foi alterado para usar o novo formato ld.so.cache, que é suportado no glibc há quase 20 anos.
  • Vulnerabilidades corrigidas:
    • CVE-2016-10228 — um looping na utilidade iconv, que se manifesta ao ser executada com a opção «-c», ao processar dados de múltiplos bytes inválidos.
    • CVE-2020-10029 — corrupção da pilha ao chamar funções trigonométricas com um argumento pseudo-nulo.
    • CVE-2020-1752 — acesso a uma área de memória após ela ter sido liberada (use-after-free) na função glob ao expandir uma referência ao diretório home («~user») nos caminhos.
    • CVE-2020-6096 — tratamento incorreto na plataforma ARMv7 de valores negativos do parâmetro em memcpy() e memmove(), que define o tamanho da área a ser copiada. Permite organizar a execução de código ao lidar com dados formatados de forma específica nas funções memcpy() e memmove(). É notável que o problema permanecia não corrigido por quase dois meses após a divulgação pública da informação e cinco meses após o aviso aos desenvolvedores do Glibc.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster