公告ID(KYSA-202208-1287)
公告ID:KYSA-202208-1287
公告摘要:glibc安全漏洞
等级:Critical
发布日期:2022-08-23
详细介绍
1.修复的CVE
·CVE-2009-5029
描述:glibc(又名GNU C Library,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。glibc 2.15之前的版本中的‘__tzfile_read’函数中存在整数溢出漏洞。上下文相关的攻击者可通过特制的时区(TZ)文件(如使用vsftpd)利用该漏洞造成拒绝服务(崩溃),也可能执行任意代码。
·CVE-2011-4609
描述:glibc(又名GNU C Library,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。glibc 2.15之前的版本中的RPC实现中的‘svc_run’函数中存在漏洞。远程攻击者可通过大量的RPC连接利用该漏洞造成拒绝服务(CPU耗尽)。
·CVE-2012-0864
描述:glibc(又名GNU C Library,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。glibc 2.14及其他版本中的stdio-common/vfprintf.c中的‘vfprintf’函数中存在整数溢出漏洞。上下文相关的攻击者可通过大量的参数利用该漏洞绕过FORTIFY_SOURCE保护机制,实施格式化字符串攻击,并写入任意内存。
·CVE-2012-3404
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library(又名glibc)2.12和其他版本中的libc中的stdio-common/vfprintf.c文件中的‘vfprintf’函数中存在安全漏洞,该漏洞源于程序没有正确地计算缓冲区长度。攻击者可借助使用positional参数和许多格式说明符的格式字符串,利用该漏洞绕过FORTIFY_SOURCE格式化字符串保护机制,造成拒绝服务(栈损坏和程序崩溃)。
·CVE-2012-3405
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.14版本中的stdio-common/vfprintf.c文件中的‘vfprintf’函数中存在安全漏洞,该漏洞源于程序没有正确地计算缓冲区长度。攻击者可借助带有大量格式说明符的格式字符串利用该漏洞绕过FORTIFY_SOURCE格式字符串保护机制,造成拒绝服务(段错误和崩溃)。
·CVE-2012-3406
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.5和2.12他版本中的stdio-common/vfprintf.c文件中的‘vfprintf’函数中存在安全漏洞,该漏洞源于程序在分配SPECS数组时,没有正确限制alloca函数的使用。攻击者可通过使用positional参数的格式字符串和大量的格式说明符利用该漏洞绕过FORTIFY_SOURCE格式字符串保护机制,造成拒绝服务(崩溃)。
·CVE-2012-3480
描述:glibc(又名GNU C Library,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU glibc 2.16版本中存在多个整数益出漏洞,这些漏洞源于对用户提供的数据未执行充分的边界值校验。本地攻击者可利用该漏洞以特权在受影响应用程序中运行任意代码,攻击失败可导致拒绝服务。
·CVE-2013-0242
描述:glibc(又名GNU C Library,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。glibc 2.17及更早版本中的正则表达式匹配器中的extend_buffers函数中存在缓冲区溢出漏洞。基于上下文的攻击者可通过特制的多字节字符利用该漏洞导致拒绝服务(内存耗尽或崩溃)。
·CVE-2013-1914
描述:glibc(又名GNU C Library,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library (又名glibc或libc6) 2.17版本和较早的版本中的sysdeps/posix/getaddrinfo.c中的‘getaddrinfo’函数中存在基于栈的缓冲区溢出漏洞。远程攻击者可通过主机名或IP地址触发大量的域转换结果利用该漏洞造成拒绝服务(崩溃)。
·CVE-2013-4237
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.18之前版本中的sysdeps/posix/readdir_r.c文件中存在拒绝服务漏洞。上下文相关的攻击者可通过特制的NTFS或CIFS图像利用该漏洞造成拒绝服务(越边界写入和程序崩溃),或可能执行任意代码。
·CVE-2013-4332
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.18之前版本中的malloc/malloc.c文件中存在整数溢出漏洞。上下文相关的攻击者可通过向(1)pvalloc,(2)valloc,(3)posix_memalign,(4)memalign或(5)aligned_alloc函数传递较大的值利用该漏洞造成拒绝服务(堆内存损坏)。
·CVE-2013-4458
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library (又名glibc或libc6) 2.18及之前的版本中的sysdeps/posix/getaddrinfo.c文件中的‘getaddrinfo’函数中存在基于栈的缓冲区溢出漏洞。远程攻击者可借助特制的主机名或IP地址利用该漏洞造成拒绝服务(程序崩溃)。
·CVE-2013-7423
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.20及之前版本的resolv/res_send.c文件中的‘send_dg’函数存在安全漏洞,该漏洞源于程序没有正确重用文件描述符。远程攻击者可借助大量请求利用该漏洞向任意位置发送DNS查询。
·CVE-2013-7424
描述:glibc(又名GNU C Library,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。glibc 2.15之前版本的‘getaddrinfo’函数中存在安全漏洞。当程序使用libidn编译并使用AI_IDN标志时,攻击者可利用该漏洞造成拒绝服务(无效的释放),或执行任意代码。
·CVE-2014-0475
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.20之前版本中存在目录遍历漏洞,该漏洞源于程序未充分过滤某些本地环境变量(如LC_*,LANG等)。上下文相关的攻击者可通过环境变量中的目录遍历字符‘..’绕过ForceCommand限制或造成其他影响。
·CVE-2014-5119
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library(aka glibc)的gconv_trans.c文件中的‘__gconv_translit_find’函数的‘CHARSET’环境变量和‘gconv’音译模块中存在差一错误漏洞。攻击者可利用该漏洞造成拒绝服务(崩溃)或执行任意代码。
·CVE-2014-6040
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.19及之前版本中存在安全漏洞,该漏洞源于程序将IBM933、IBM935、IBM937、BM939和IBM1364编码的数据转换成UTF-8时,‘iconv’函数没有充分过滤多字节字符‘0xffff’。攻击者可利用该漏洞造成拒绝服务(越边界读取和崩溃)。
·CVE-2014-7817
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.21版本的‘wordexp’函数中存在安全漏洞,该漏洞源于程序没有正确处理WRDE_NOCMD标记。攻击者可利用该漏洞执行任意命令。
·CVE-2014-9761
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.23之前版本中存在基于栈的缓冲区溢出漏洞。攻击者可借助‘nan’、‘nanf’或‘nanl’函数的较长的参数利用该漏洞造成拒绝服务(应用程序崩溃),或执行任意代码。
·CVE-2015-0235
描述:GNU glibc(又名GNU C Library,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU glibc 2.2版本和2.18之前2.x版本中的‘__nss_hostname_digits_dots’函数存在基于堆的缓冲区溢出漏洞。本地和远程攻击者都可通过调用‘ gethostbyname*()’函数利用该漏洞以运行应用程序的用户权限执行任意代码,控制系统。
·CVE-2015-1781
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.22之前版本的‘gethostbyname_r’和NSS函数中存在缓冲区溢出漏洞。远程攻击者可借助特制的DNS响应利用该漏洞造成拒绝服务(崩溃),或执行任意代码。
·CVE-2015-5229
描述:glibc 6.7及7.2版本中的‘calloc’函数存在安全漏洞,该漏洞源于程序没有正确初始化内存空间。远程攻击者可利用该漏洞造成拒绝服务(挂起或崩溃)。
·CVE-2015-7547
描述:glibc(GNU C Library)是GNU计划所实现的C标准库。glibc 2.9版本至2.22版本的resolv/res_send.c文件中 send_dg 和 send_vc 函数存在缓冲区错误漏洞。攻击者可借助特制的域名、DNS响应或实施中间人攻击利用该漏洞控制软件,执行任意代码,或造成拒绝服务(崩溃)。
·CVE-2015-8776
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.23之前版本的‘strftime’函数中存在安全漏洞。攻击者可借助超出范围的时间值利用该漏洞造成拒绝服务(应用程序崩溃),或获取敏感信息。
·CVE-2015-8778
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.23之前版本中存在整数溢出漏洞。攻击者可借助‘__hcreate_r’函数的‘size’参数利用该漏洞造成拒绝服务(应用程序崩溃),或执行任意代码。
·CVE-2015-8779
描述:GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。GNU C Library 2.23之前版本的‘catopen’函数中存在基于栈的缓冲区溢出漏洞。攻击者可借助较长的目录名利用该漏洞造成拒绝服务(应用程序崩溃),或执行任意代码。
2.受影响的软件包
·中标麒麟高级服务器操作系统 V6
·x86_64架构:
glibc、glibc-common、glibc-devel、glibc-headers、glibc-static、glibc-utils、nscd
3.软件包修复版本
·中标麒麟高级服务器操作系统 V6 (x86_64)
glibc-2.12-1.209.el6.ns6.01或以上版本
glibc-common-2.12-1.209.el6.ns6.01或以上版本
glibc-devel-2.12-1.209.el6.ns6.01或以上版本
glibc-headers-2.12-1.209.el6.ns6.01或以上版本
glibc-static-2.12-1.209.el6.ns6.01或以上版本
glibc-utils-2.12-1.209.el6.ns6.01或以上版本
nscd-2.12-1.209.el6.ns6.01或以上版本
4.修复方法
方法一:配置源进行升级安装
1.打开软件包源配置文件,根据仓库地址进行修改。
仓库源地址:
中标麒麟高级服务器操作系统 V6
x86_64:http://update.cs2c.com.cn/NS/V6/V6.9/os/lic/base/x86_64/
2.配置完成后执行更新命令进行升级,命令如下:
yum update Packagename
方法二:下载安装包进行升级安装
通过软件包地址下载软件包,使用软件包升级命令根据受影响的软件包
列表进行升级安装, 命令如下:
yum install Packagename
3.升级完成后是否需要重启服务或操作系统:
CVE-2009-5029:需要重启 glibc 以使漏洞修复生效。
CVE-2011-4609:需要重启 glibc 以使漏洞修复生效。
CVE-2012-0864:需要重启 glibc 以使漏洞修复生效。
CVE-2012-3404:需要重启 glibc 以使漏洞修复生效。
CVE-2012-3405:需要重启 glibc 以使漏洞修复生效。
CVE-2012-3406:需要重启 glibc 以使漏洞修复生效。
CVE-2012-3480:需要重启 glibc 以使漏洞修复生效。
CVE-2013-0242:需要重启 glibc 以使漏洞修复生效。
CVE-2013-1914:需要重启 glibc 以使漏洞修复生效。
CVE-2013-4237:需要重启 glibc 以使漏洞修复生效。
CVE-2013-4332:需要重启 glibc 以使漏洞修复生效。
CVE-2013-4458:需要重启 glibc 以使漏洞修复生效。
CVE-2013-7423:需要重启 glibc 以使漏洞修复生效。
CVE-2013-7424:需要重启 glibc 以使漏洞修复生效。
CVE-2014-0475:需要重启 glibc 以使漏洞修复生效。
CVE-2014-5119:需要重启操作系统以使漏洞修复生效。
CVE-2014-6040:需要重启 glibc 以使漏洞修复生效。
CVE-2014-7817:需要重启 glibc 以使漏洞修复生效。
CVE-2014-9761:需要重启 glibc 以使漏洞修复生效。
CVE-2015-0235:无需重启操作系统与服务即可使漏洞修复生效。
CVE-2015-1781:需要重启 glibc 以使漏洞修复生效。
CVE-2015-5229:需要重启 glibc 以使漏洞修复生效。
CVE-2015-7547:需要重启操作系统以使漏洞修复生效。
CVE-2015-8776:需要重启 glibc 以使漏洞修复生效。
CVE-2015-8778:需要重启 glibc 以使漏洞修复生效。
CVE-2015-8779:需要重启 glibc 以使漏洞修复生效。
5.软件包下载地址
·中标麒麟高级服务器操作系统 V6
glibc(x86_64)软件包下载地址:
http://update.cs2c.com.cn/NS/V6/V6.9/os/lic/base/x86_64/Packages/glibc-2.12-1.209.el6.ns6.01.i686.rpm
http://update.cs2c.com.cn/NS/V6/V6.9/os/lic/base/x86_64/Packages/glibc-2.12-1.209.el6.ns6.01.x86_64.rpm
http://update.cs2c.com.cn/NS/V6/V6.9/os/lic/base/x86_64/Packages/glibc-common-2.12-1.209.el6.ns6.01.x86_64.rpm
http://update.cs2c.com.cn/NS/V6/V6.9/os/lic/base/x86_64/Packages/glibc-devel-2.12-1.209.el6.ns6.01.i686.rpm
http://update.cs2c.com.cn/NS/V6/V6.9/os/lic/base/x86_64/Packages/glibc-devel-2.12-1.209.el6.ns6.01.x86_64.rpm
http://update.cs2c.com.cn/NS/V6/V6.9/os/lic/base/x86_64/Packages/glibc-headers-2.12-1.209.el6.ns6.01.x86_64.rpm
http://update.cs2c.com.cn/NS/V6/V6.9/os/lic/base/x86_64/Packages/glibc-static-2.12-1.209.el6.ns6.01.i686.rpm
http://update.cs2c.com.cn/NS/V6/V6.9/os/lic/base/x86_64/Packages/glibc-static-2.12-1.209.el6.ns6.01.x86_64.rpm
http://update.cs2c.com.cn/NS/V6/V6.9/os/lic/base/x86_64/Packages/glibc-utils-2.12-1.209.el6.ns6.01.x86_64.rpm
http://update.cs2c.com.cn/NS/V6/V6.9/os/lic/base/x86_64/Packages/nscd-2.12-1.209.el6.ns6.01.x86_64.rpm
注:其他相关依赖包请到相同目录下载
6.修复验证
使用软件包查询命令,查看相关软件包版本是否与修复版本一致,如果版本一致,则说明修复成功。
sudo rpm -qa | grep Packagename