Linux glibc 再曝漏洞:可导致 Linux 软件劫持
近日,Google和Red Hat的安全人员发现GNU C Library (glibc)中存在严重的安全漏洞,可导致Linux软件被攻击者劫持,进而在Linux平台上执行任意代码,获取密码,监视用户,甚至控制计算机。CVE编号为CVE-2015-7547。
glibc是GNU发布的libc库,即c运行库。它是Linux系统中最底层的API,几乎其它运行库都会依赖于glibc。glibc应用于众多Linux发行版本中,所以此类漏洞影响范围十分广泛。
glibc的DNS客户端解析器中存在基于栈的缓冲区溢出漏洞。当软件用到getaddrinfo库函数(处理名字到地址以及服务到端口的转换)时,攻击者便可借助特制的域名、DNS服务器或中间人攻击利用该漏洞,控制软件,并试图控制整个系统。
攻击者使用恶意的DNS域名服务器创建类似于evildomain.com的域名,然后向目标用户发送带有指向该域名的链接的邮件,一旦用户点击该链接,客户端或浏览器将会开始查找ildomain.com,并最终得到恶意服务器的buffer-busting响应。该域名被嵌入服务器日志中,一旦解析就会触发远程代码执行,SH客户端也会因此被控制。或者,位于目标用户网络中的中间人攻击者可以篡改DNS响应,向恶意代码中动态注入负载。
根据目前的调查情况,此漏洞影响自2.9之后的所有版本,其他旧版本也可能受到影响。
glibc通过alloca()函数在栈中为_nss_dns_gethostbyname4_r函数2048字节的空间,用于托管DNS响应。若响应大于2048字节,程序会从堆中重新分配一个缓冲区,并更新所有信息(缓冲区指针,缓冲区大小和响应大小)。
在一定条件下,会出现栈缓冲区和新分配的堆内存的错误匹配,导致超过栈缓冲区大小的响应仍然存储在栈中,进而发生缓冲区溢出。触发该漏洞的利用向量十分普遍,并且ssh、sudo和curl等工具中。
该漏洞存在于resolv/res_send.c文件中,当getaddrinfo()函数被调用时会触发该漏洞。技术人员可以通过将TCP DNS响应的大小限制为1024字节,并丢弃所有超过512字节的UDPDNS数据包来缓解该问题。值得庆幸的是,许多嵌入式Linux设备,例如家庭路由器,更倾向于使用uclibc库,因此可以免受该漏洞的影响。
补丁获取:sourceware
POC:github
参考来源:GoogleOnlineSecurity
50500.html
googlelinux相关文章
- Linux中创建文件夹的简易教程(linux下创建文件夹)
- code「开源世界:探讨Linux的源代码」(linux的source)
- 查询探索Linux系统中设备型号的查询方法(linux设备型号)
- 使用SSH工具连接Linux服务器(ssh工具连接linux)
- 儿Linux软件:畅享少儿编程乐趣(linux软件少)
- 开发Linux下安卓软件开发指南(linux安卓软件)
- 研究深入:揭秘Linux内核运行机制(linux内核工作原理)
- Linux去重:快速摆脱重复问题(linux排重)
- 深入浅出:Linux系统刷机指南(linux系统刷机)
- 开启嵌入式实时Linux时代(嵌入式实时linux)
- 解决Linux系统时间设置问题(linux时间设置)
- Linux下简单记账软件:快速实现财务自由(linux记账软件)
- Linux系统主题优化指南(linux主题优化)
- Linux安装Deb软件的指南(linux下安装deb)
- Linux 课程:开启人工智能新时代(linux课的特点)
- Linux下的反汇编利器——IDA Pro(linux反汇编软件)
- 快速深入Linux反汇编世界(linux反汇编软件)
- Linux各分支探究之旅(linux的分支)
- Linux 应用中心:轻松获取软件与工具(linux应用中心)
- Linux 挂载 Yum 源,轻松实现软件更新(linux挂载yum源)
- Linux桌面环境:多样的软件组合体(linux桌面软件)
- Linux系统:开源软件的普及之路(linux 系统 软件)
- 手机瞬间连接Linux服务器,简单便捷!(手机连接linux服务器)
- Linux下快速轻松装软件,改变您的体验!(linux 系统装软件)
- Linux下面最佳压力测试软件:探究软件魅力(linux压力测试软件)