Imp-2.2.4 处理临时文件存在问题发布时间:2001-06-01 更新时间:2001-06-01 严重程度:高 威胁程度:权限提升 错误类型:输入验证错误 利用方式:服务器模式 受影响系统 imp-2.2.4 on Linux and AIX (with php-4.0.5/php-3.0.18)详细描述 当用户编辑一新邮件时所有附件将上载到WEBMAIL服务器,首先PHP 处理文件上载和建立一临时文件(文件建立在php.ini定义的'upload_tmp_dir 或者/tmp目录中),临时文件名类似/tmp/phpXXXXXX,然后imp的compose.php3 为安全起见拷贝这个临时文件。目的文件名imp使用/tmp/phpXXXXXX.att,但是 imp没有检查目的文件是否存在(目的文件打开时没有使用O_EXCL标志),因此 攻击者可以监视/tmp中的phpXXXXXX,然后快速建立符号连接: 'ln -s /tmp/phpXXXXXX.att /to/webserver_writable_file' 附件查看器: imp可以使用外部查看器查看EMAIL附件如ZIP文件,在调用这些查看器imp 保存附件到一临时文件,这些文件名类似:/tmp/imp.'.date('Y-M-D_H:i:s').'__'.md5($contents). 而且也建立目的文件是否存在,也可导致符号连接问题。 测试代码 见描述部分。 解决方案 升级imp到2.2.5 相关信息 |