Pine是一款开放源代码的EMAIL客户端。 Pine包含的rfc2231_get_param()函数存在整数溢出问题,远程攻击者可以利用这个漏洞构建恶意邮件,诱使用户访问,以用户进程权限在系统上执行任意指令。 问题存在于strings.c文件中的rfc2231_get_param()函数,其中声明了64字节大小的字符数组: #define RFC2231_MAX 64 ... char *pieces[RFC2231_MAX]; and indexed by the signed integer variable \'\'n\'\': if(n < RFC2231_MAX){ pieces[n] = parms->value; 变量\'\'n\'\'可由攻击者控制,并且可以设置成负值绕过安全检查,通过存储汇编代码在parms->value结构中并覆盖64字节数组,就可能覆盖堆栈中的指令指针,以用户权限在系统上执行任意指令。
Pine是一款开放源代码的EMAIL客户端。 Pine包含的rfc2231_get_param()函数存在整数溢出问题,远程攻击者可以利用这个漏洞构建恶意邮件,诱使用户访问,以用户进程权限在系统上执行任意指令。 问题存在于strings.c文件中的rfc2231_get_param()函数,其中声明了64字节大小的字符数组: #define RFC2231_MAX 64 ... char *pieces[RFC2231_MAX]; and indexed by the signed integer variable \'\'n\'\': if(n < RFC2231_MAX){ pieces[n] = parms->value; 变量\'\'n\'\'可由攻击者控制,并且可以设置成负值绕过安全检查,通过存储汇编代码在parms->value结构中并覆盖64字节数组,就可能覆盖堆栈中的指令指针,以用户权限在系统上执行任意指令。