Glibc 2.34 带来漏洞修复、Linux 新功能等

最近 Glibc 2.34 新版本发布 经过六个月的开发,其中进行了几项非常重要的更改,其中包括 libpthread、libdl、libutil 和 libanl 库,以及各种错误修复,其中一个导致阻塞。

对于不熟悉 Glibc 的人来说,应该知道它是什么 一个 GNU C 库, 俗称 glibc 是标准的 GNU C 运行时库。 在使用它的系统上,这个 C 库 提供和定义系统调用和其他基本功能,几乎所有程序都使用它。 

Glibc 2.34 的主要新特性

在这个新版本的 Glibc 2.34 中 libpthread、libdl、libutil 和 libanl 已集成到主库中,在应用程序中使用其功能不再需要将它们与 -lpthread、-ldl、-lutil 和 -lanl 标志绑定。

此外,提到了 已经准备好将libreolv集成到libc中, 其中集成 将允许更顺畅的 glibc 更新过程 它将简化运行时实现,并且还提供了存根库以与使用早期版本的 glibc 构建的应用程序兼容。

关于集中在 Linux 上的变化 Glibc 2.34 突出了 添加了在配置中使用 64 位 time_t 类型的能力 传统上使用 time_t 类型 32位. 此功能仅在具有内核 5.1 及更高版本的系统上可用。

Linux 的另一个具体变化是 execveat 函数的实现允许从打开的文件描述符执行可执行文件. 新函数还用于 fexecve 调用的实现,它不需要在启动时挂载 /proc 伪文件系统。

还增加了这个功能 close_range() 适用于 Linux 5.9 版本 并且更高并且可以是 用于允许进程关闭所有文件描述符 open的同时,还实现了glibc.pthread.stack_cache_size参数,可以用来调整pthread栈缓存的大小。

此外, 添加 _Fork 函数,替换 为了功能 它满足“异步信号安全”要求,这意味着它可以从信号处理程序中安全地调用。 在 _Fork 执行期间,形成了一个最小环境,足以调用 raise 和 execve 等信号处理程序中的函数,而无需调用可以更改锁或内部状态的功能。

对于Glibc 2.34修复的部分漏洞,提到以下几点:

CVE-2021-27645: nscd 进程(名称服务器缓存守护进程)由于在处理特制网络组请求时对 free 函数的双重调用而失败。

CVE-2021-33574: 当使用 SIGEV_THREAD 通知类型和线程属性(为其设置了替代 CPU 绑定掩码)时,访问 mq_notify 函数中已释放(释放后使用)的内存区域。 该问题可能导致崩溃,但不排除其他攻击选项。

CVE-2021-35942: wordexp 函数中的参数大小溢出可能会导致应用程序崩溃。

其他变化 脱颖而出:

  • 已添加 ISO C2X 标准草案中定义的 timespec_getres 函数,并且增加了 timespec_get 函数,其功能类似于 POSIX clock_getres 函数。
  • 在 gconv-modules 文件中,只保留了最少量的主要 gconv 模块,其余的被移动到位于 gconv-modules.d 目录中的附加 gconv-modules-extra.conf 文件中。
  • 使用符号链接将可安装共享对象链接到 Glibc 版本已被删除。 这些对象现在按原样安装(例如,libc.so.6 现在是一个文件,而不是指向 libc-2.34.so 的链接)。
  • 在 Linux 上,像 shm_open 和 sem_open 这样的函数现在需要一个文件系统用于挂载在 /dev/shm 挂载点上的共享内存。

最后 如果您有兴趣了解更多有关它的信息 这个新版本,您可以检查 以下链接中提供了详细信息。


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。