Glibc 2.40 系统库发布

经过六个月的开发,GNU C Library (glibc) 2.40系统库已经发布,完全符合ISO C11和POSIX.1-2017标准的要求。 新版本包含 68 名开发人员的修复。

Glibc 2.40 中实现的一些改进包括:

  • C23 标准中定义的新指数和对数函数已添加到 math.h 头文件中:exp2m1、exp10m1.log2p1、log10p1 和 logp1。这些函数有 float、double、long double、_FloatN 和 _FloatNx 类型。
  • 添加了 _ISOC23_SOURCE 宏,该宏定义了 C23 标准中提出的功能的使用(目前只有部分 C23 功能在 Glibc 中实现)。还可以在编译期间通过在 GCC 中指定 -std=c23、-std=gnu23、-std=c23x 或 -std=gnu2x 选项来启用 C2 的使用。
  • 添加了“glibc.rtld.enable_secure”设置,允许在测试时运行程序,就像它具有用于更改用户标识符 (setuid) 的标志一样。
  • 在平台上 Linux epoll.h 头文件已更新,以支持内核中引入的新 ioctl 和 epoll 结构。 Linux 6.9.
  • 在执行字符串和内存管理函数(“_FORTIFY_SOURCE”)期间检测可能的缓冲区溢出和安全相关错误的功能适用于使用 Clang 编译器构建 Glibc。
  • 矢量数学库 (libmvec) 为 Aarch64 架构提供了 acosh、asinh、atanh、cbrt、cosh、erf、erfc、hypot、pow、sinh 和 tanh 的实现。
  • 在 x86 系统上,为了加快写入大型数据集的速度,memset 函数提供了禁用临时缓冲区的功能。使用“x86_memset_non_temporal_threshold”设置激活优化。
  • 使用 GCC 14 时处理不同类型(通用类型)的 stdbit.h 头文件中的宏已切换为使用内置函数 __builtin_stdc_bit_ceil 以支持类型为 __int128 和 _BitInt(N) 的操作数。
  • Lastlog、utmp 和 utmpx 结构中的纪元时间计数器字段已从使用 32 位有符号类型转换为无符号类型,这使得计数器的最大可寻址时间从 2038 扩展到 2106。
  • 已修复的漏洞:
    • CVE-2024-2961 - 使用 iconv() 函数转换特殊格式的 ISO-2022-CN-EXT 字符串时出现缓冲区溢出。实际上,该漏洞可用于对 PHP 应用程序进行远程攻击,导致代码执行。
    • CVE-2024-33599 - nscd(名称服务缓存守护程序)进程中的网络组缓存代码中存在缓冲区溢出。客户端可以通过发送特制请求来利用该漏洞。
    • CVE-2024-33600 nscd 进程中的 NULL 指针取消引用可能会导致处理某些请求时崩溃。
    • CVE-2024-33601 网络组缓存中的错误可能会导致 nscd 进程因内存分配失败而崩溃。
    • CVE-2024-33602 在 nscd 进程中使用网络组缓存时会发生内存损坏。

    来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster