CVE:CVE-2007-1396
CNNVD:CNNVD-200703-300
PHP是广泛使用的通用目的脚本语言，特别适合于Web开发，可嵌入到HTML中。
PHP的import_request_variables()函数实现上存在漏洞，远程攻击者可能利用此漏洞控制服务器。
远程攻击者可以利用PHP的import_request_variables()函数覆盖$_*和$*变量(任意php变量)，导致执行任意代码。有漏洞代码位于以下文件中：
./ext/standard/basic_functions.c:PHP_FUNCTION(import_request_variables)
./Zend/zend_hash.c:ZEND_API void
zend_hash_apply_with_arguments(HashTable *ht, apply_func_args_t
apply_func, int num_args, ...)
有漏洞的代码段如下：
PHP_FUNCTION(import_request_variables) {
[..]
if (prefix_len == 0) {
 php_error_docref(NULL TSRMLS_CC, E_NOTICE, "No prefix specified -
possible security hazard");
}
[..]
 for (p = types; p && *p; p++) {
  switch (*p) {
   case 'g': case 'G':
zend_hash_apply_with_arguments(Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_GET]),
(apply_func_args_t) copy_request_variable, 2, prefix, prefix_len);break;
   case 'p': case 'P':
zend_hash_apply_with_arguments(Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_POST]),
(apply_func_args_t) copy_request_variable, 2, prefix, prefix_len);
zend_hash_apply_with_arguments(Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_FILES]),
(apply_func_args_t) copy_request_variable, 2, prefix, prefix_len);
break;
   case 'c': case 'C':
zend_hash_apply_with_arguments(Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_COOKIE]),
(apply_func_args_t) copy_request_variable, 2, prefix, prefix_len);break;
  }
 }
[..]
}
solution:Upgrade php php to a higher version than 4.0.7,4.1.0,4.1.1,4.1.2,4.2.0,4.2.1,4.2.2,4.2.3,4.3.0,4.3.1,4.3.2,4.3.3,4.3.4,4.3.5,4.3.6,4.3.7,4.3.8,4.3.9,4.3.10,4.3.11,4.4.0,4.4.1,4.4.2,4.4.3,4.4.4,4.4.5,4.4.6,5.0.0,5.0.1,5.0.2,5.0.3,5.0.4,5.0.5,5.1.0,5.1.1,5.1.2,5.1.3,5.1.4,5.1.5,5.1.6,5.2.0,5.2.1,and avoid the version 4.0.7,4.1.0,4.1.1,4.1.2,4.2.0,4.2.1,4.2.2,4.2.3,4.3.0,4.3.1,4.3.2,4.3.3,4.3.4,4.3.5,4.3.6,4.3.7,4.3.8,4.3.9,4.3.10,4.3.11,4.4.0,4.4.1,4.4.2,4.4.3,4.4.4,4.4.5,4.4.6,5.0.0,5.0.1,5.0.2,5.0.3,5.0.4,5.0.5,5.1.0,5.1.1,5.1.2,5.1.3,5.1.4,5.1.5,5.1.6,5.2.0,5.2.1