首页/安全/安全加固速查/glibc 版本自查(Looney Tunables 类)
补丁与漏洞管理50 条

glibc 版本自查(Looney Tunables 类)

glibc 的 ld.so 环境变量处理曾出现本地提权漏洞(CVE-2023-4911 系列):核查 glibc 版本并升级,容器镜像同样适用。

安全加固速查安全更新于 2026-10-13

glibc 漏洞为什么要重视

glibc 是最底层的基础库,它的漏洞(例如 Looney Tunables 系列的 CVE-2023-4911)多为本地提权:任何已登录的普通用户都能利用。核查方式是确认 glibc 版本是否达到发行版给出的修复版本,同样不能只看主版本号。容器镜像里也带 glibc,修宿主的时候别忘了镜像。

基本信息

适用平台Linux
风险等级高
基线要求glibc 为发行版给出的修复版本
相关组件glibc 与动态加载器 ld.so
核查命令ldd --version、getconf GNU_LIBC_VERSION
延伸场景容器镜像的基础层同样需要核查

典型使用场景

  • 收到 glibc 本地提权漏洞通告后的自查
  • 多用户主机与跳板机优先修复
  • 容器基础镜像的 glibc 版本核查与重建
  • 确认静态链接程序是否需要单独处理
  • 更新后检查长期运行的服务是否已重启
  • 升级前后做中间件兼容性评估

版本核查

版本核查
ldd --version | head -1              # 直接读取 glibc 版本
getconf GNU_LIBC_VERSION             # 另一种读取方式,用于交叉验证
rpm -q glibc 2>/dev/null             # RHEL 系的包版本
dpkg -l libc6 2>/dev/null | tail -2  # Debian 系的包版本
ls -l /lib64/ld-linux-x86-64.so.2    # 动态加载器的路径与时间戳

更新与生效

更新与生效
sudo dnf update -y glibc 2>/dev/null || sudo apt-get install --only-upgrade -y libc6   # 升级到修复版本
ldd --version | head -1              # 升级后复核版本
sudo dnf needs-restarting -r 2>/dev/null || cat /var/run/reboot-required 2>/dev/null   # 查看重启待办

输出逐列读法

检查项含义注意点
ldd --version当前 glibc 版本与公告修复版本比对
GNU_LIBC_VERSION交叉验证的版本值两个来源应当一致
libc6 或 glibc 包版本包管理器记录的版本发行版按包版本发补丁
动态加载器ld.so 文件与时间戳更新后时间戳应发生变化
重启待办仍在使用旧库的进程服务需重启才生效
glibc 更新后长期运行的服务仍在用内存里的旧库:要按重启待办清单统一安排重启,否则漏洞照旧存在。
静态链接的程序不受 libc 升级影响:这类程序要单独维护清单,按各自的更新方式处理。
升级 glibc 属于高风险变更:建议放在变更窗口内执行并准备回滚方案,尤其是承载大量长连接服务的机器。

易错点

  • 更新 glibc 后没有重启服务,进程仍在使用旧库,漏洞实际并未消除
  • 只查包管理器版本不看运行库文件时间戳,更新失败的情况被漏掉
  • 容器镜像里的 glibc 被忽略,宿主机修好了镜像仍然带漏洞
  • 静态链接的程序不在 libc 升级的影响范围内,却被当成已修复
  • 在生产高峰期直接升级基础库,触发依赖它的服务异常甚至无法启动

数据来源与参考

  • CVE-2023-4911(Qualys 披露)
  • 发行版安全公告

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌