Imp-2.2.4 创建临时文件漏洞 (APP,缺陷) 涉及程序: IMP 详细: Imp-2.2.4 创建临时文件时文件名可预测漏洞 Internet Messaging Program ( http://www.horde.org/imp/ ) 是一款小型的通信软件,支持大文件邮件系统、IMPA、POP3 帐号。但是近日发现它存在漏洞,当 Imp-webmail 处理上传的邮件附件时,使用能被预见的临时文件名。攻击者利用此漏洞,能重写本地文件: 1、Uploaded attachments: 当用户写一封新邮件时,所有的附件都会被上传到 webmail 服务器上。首先,PHP 处理文件上传并创建一个临时文件(该文件在 php.ini \`upload_tmp_dir\` 或 /tmp 中),临时文件名类似 /tmp/phpXXXXXX。最终 imp 要用到的文件名是 /tmp/phpXXXXXX.att,但是却没有检查该文件名是否已经存在。因此,攻击者能先察看 /tmp 或 upload_tmp_dir 中的 phpXXXXXX 文件,然后再创建一个链接: \`ln -s /tmp/phpXXXXXX.att /to/webserver_writable_file\` 2、Attachment viewers: Imp 能使用外部浏览器观看 EMAIL 附件。在调用这些附件之前,imp (imp/lib/mimetypes.lib) 会将这些附件存入一个临时文件中,文件名类似 /tmp/imp.\`.date(\`Y-M-D_H:i:s\`).\`__\`.md5($contents). 因此,该文件名能被猜出。从而又可创建链接。 测试平台: imp-2.2.4 on Linux and AIX (with php-4.0.5/php-3.0.18) 解决方案: 请用户升级到 imp-2.2.5 ,并用 \`upload_tmp_dir\` directive (php.ini) 来定义上传文件的存放目录(参考imp/docs/SECURITY ): 下载: http://www.horde.org/imp/download/