- 7
- 0
- 约小于1千字
- 约 1页
- 2026-04-19 发布于北京
- 举报
CVE-2012-0809补丁源码对比分析
作者:泉哥
主页:
描述
CVE-2012-0809是Sudo1.8.0~1.8.3p1版本之间的sudo_debug函数存在格式化字符串漏
洞,当把程序名作为格式化字符串的一部分传递给fprintf()函数时就会触发该。而程序
名可通过ln命令来创建符号连接或者其它一些方式来被利用。例如:
/tmp$ln-s/usr/bin/sudo%n
/tmp$./%n-D9
借助通用的格式化字符串利用技术可能执行任意代码,进而获得Root权限。
源码比对
下面是对版本号1.8.3p1与1.8.3p2的源码比较,在函数sudo_debug中,getprogname
用于获取程序名,相当于argv[0],将其保存在fmt2中,然后将它作为格式化字符串的一部
分通过vfprintf函数传递给stderr,导致格式化字符串的发生。修复后的版本,则不再
使用fmt2参数来传递格式化字符,而是直接将%s:%s\n作为参数,这样格式化字符参数就
不制的,从而修复格式化字符串。
关于该的利用,老外已经有分析过,具
原创力文档

文档评论(0)