标题:
PHP tempname()函数绕过safe_mode安全限制漏洞
[打印本页]
作者:
zclzhao
时间:
2009-12-2 14:08
标题:
PHP tempname()函数绕过safe_mode安全限制漏洞
影响版本:
PHP PHP 5.3.x
PHP PHP 5.2.x漏洞描述:
BUGTRAQ ID: 36555
CVE ID: CVE-2009-3557
PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。
PHP的tempnam()中的错误可能允许绕过safe_mode限制。以下是ext/standard/file.c中的有漏洞代码段:
PHP_FUNCTION(tempnam)
{
char *dir, *prefix;
int dir_len, prefix_len;
size_t p_len;
char *opened_path;
char *p;
int fd;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &dir, &dir_len,
&prefix, &prefix_len) == FAILURE) {
return;
}
if (php_check_open_basedir(dir TSRMLS_CC)) { [1]
RETURN_FALSE;
}
php_basename(prefix, prefix_len, NULL, 0, &p, &p_len TSRMLS_CC);
if (p_len > 64) {
p[63] = ’\0’;
}
if ((fd = php_open_temporary_fd(dir, p, &opened_path TSRMLS_CC)) >= 0) {
close(fd);
RETVAL_STRING(opened_path, 0);
}
efree(p);
}
在[1]处tempnam()函数仅检查了open_basedir值。<*参考
http://securityreason.com/securityalert/6601
http://secunia.com/advisories/37412/
*>
SEBUG安全建议:
厂商补丁:
PHP
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://svn.php.net/viewvc/php/ph ... ard/file.c?view=log
http://svn.php.net/viewvc/php/ph ... ard/file.c?view=log
欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com/)
Powered by Discuz! 7.2