CVE:CVE-2008-6252
CNNVD:CNNVD-200902-530
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权限提升。
solution:Upgrade smcfancontrol smcfancontrol to a higher version than 2.1.2,and avoid the version 2.1.2