Versión da biblioteca do sistema Glibc 2.32

Despois de seis meses de desenvolvemento publicado versión da biblioteca do sistema Biblioteca GNU C (glibc) 2.32, que cumpre totalmente cos requisitos da ISO C11 e POSIX.1-2017. A nova versión inclúe correccións de 67 desenvolvedores.

Implementado en Glibc 2.32 melloras podes notar:

  • Engadido soporte para os procesadores Synopsys ARC HS (ARCv2 ISA). O porto require polo menos binutils 2.32, gcc 8.3 e Linux kernel 5.1 para executarse. Admítense tres variantes de ABI: arc-linux-gnu, arc-linux-gnuhf e arceb-linux-gnu (big-endian);
  • Carga dos módulos de auditoría especificados nos apartados DT_AUDIT e
    DT_DEPAUDIT do ficheiro executable.

  • Para a arquitectura powerpc64le, implícase o soporte para o tipo dobre longo IEEE128, que está habilitado ao construír coa opción "-mabi=ieeelongdouble".
  • Algunhas API están anotadas co atributo "acceso" de GCC, que permite xerar mellores avisos cando se compilan en GCC 10 para detectar posibles desbordamentos do búfer e outros escenarios fóra dos límites.
  • Para sistemas Linux, as funcións pthread_attr_setsigmask_np e
    pthread_attr_getsigmask_np, que dan á aplicación a posibilidade de especificar unha máscara de sinal para os fíos creados mediante pthread_create.

  • Actualizáronse os datos de codificación, a información do tipo de carácter e as táboas de transliteración para admitir a especificación Unicode 13.0.0;
  • Engadiuse un novo ficheiro de cabeceira , que define a variable __libc_single_threaded, que se pode usar en aplicacións para optimizacións dun só fío.
  • Engadíronse funcións sigabbrev_np e sigdescr_np que devolven o nome abreviado e a descrición do sinal (por exemplo, "HUP" e "Hangup" para SIGHUP).
  • Engadíronse as funcións strerrorname_np e strerrordesc_np que devolven o nome e a descrición do erro (por exemplo, "EINVAL" e "Argumento non válido" para EINVAL).
  • Para a plataforma ARM64, engadiuse unha marca "--enable-standard-branch-protection" (ou -mbranch-protection=standard en GCC), que permite que o mecanismo ARMv8.5-BTI (Branch Target Indicator) protexa o execución de conxuntos de instrucións que non se deben executar.transicións de ramificación. Impléméntase o bloqueo de transicións a seccións arbitrarias de código para evitar a creación de gadgets en exploits que utilicen técnicas de programación orientadas ao retorno (ROP - Return-Oriented Programming; o atacante non tenta colocar o seu código na memoria, senón que opera en pezas xa existentes). de instrucións de máquina que rematan cunha instrución de control de retorno, a partir da cal se constrúe unha cadea de chamadas para obter a funcionalidade desexada).
  • Realizouse unha limpeza importante de funcións obsoletas, incluíndo a eliminación das opcións "--enable-obsolete-rpc" e "--enable-obsolete-nsl", ficheiro de cabeceira . As funcións sstk, siginterrupt, sigpause, sighold, sigrelse, sigignore e sigset, as matrices sys_siglist, _sys_siglist e sys_sigabbrev, os símbolos sys_errlist, _sys_errlist, sys_nerr e _sys_nerr foron eliminados e descoñecidos.
  • ldconfig moveuse por defecto para usar o novo formato ld.so.cache, que foi compatible con glibc durante case 20 anos.
  • Vulnerabilidades corrixidas:
    • CVE-2016-10228: prodúcese un bucle na utilidade iconv cando se executa coa opción "-c" ao procesar datos de varios bytes incorrectos.
    • CVE-2020-10029 Corrupción da pila ao chamar funcións trigonométricas cun argumento pseudo-nulo.
    • CVE-2020-1752: acceso á memoria libre de uso despois da función glob ao expandir unha referencia ao directorio de inicio ("~usuario") nas rutas.
    • CVE-2020-6096 – Manexo incorrecto na plataforma ARMv7 de valores de parámetros negativos en memcpy() e memmove(), que determina o tamaño da área copiada. Permite organizar a execución do código ao procesar datos formateados de determinada maneira nas funcións memcpy() e memmove(). É significativo que o problema quedou sen correxir durante case dous meses desde que a información foi divulgada publicamente e cinco meses desde que os desenvolvedores de Glibc foron notificados.

Fonte: opennet.ru

Engadir un comentario