0×00 背景
最近某安全公司发现的glibc gethostbyname buffer overflow漏洞,该漏洞被命名为ghost,其原因是glibc的Gethostbyname函数在处理传入的畸形域名信息作解析时导致堆溢出,众多网络应用依赖glibc模块的将受到影响,现已经确认受影响的版本是glibc 2.2<=version<=2.17,但是在我们的安全研究人员在测试时触发了另一个有意思的格式串漏洞,让我们来看看具体过程。
0×01 分析细节
测试环境ubuntu glibc 2.12 python 2.6.6
当我们的研究人员在执行python如下代码时发现程序崩溃
12import socket
socket.gethostbyname(’0′*10000000)






12Import socket
Socket.gethostbyname(‘0’*10000000)
将会调用sscanf格式转换字符串’0’*10000000成整形数据“%d.%d.%d.%d”,我们通过分析glibc里面的源代码stdio-common/vfscanf.c发现,将会如下处理




0×02 漏洞利用
该格式串漏洞很难利用,拷贝到的目的地址不可预测并且很难控制。
0×03 结论 & 引用
该漏洞会造成远程crash,赶紧升级glibc吧。
感谢阿里安全研究团队和漏洞分析团队的努力