php5.2.3遠程CGI緩衝溢出漏洞
影響版本: php5.2.3
不影響版本: 其它版本
php5.2.3在處理CGI的時候,由於一編程錯誤(缺少括號),錯誤計算一字符串長度,導致堆緩衝溢出,可能遠程執行任意代碼。
觸發方式:配置.php到php.exe的CGI映射,請求GET /test.php/aa HTTP/1.1
錯誤發生在php-5.2.3\sapi\cgi\cgi-man.c line 886:
int path_translated_len = ptlen + env_path_info ? strlen(env_path_info) : 0;
程序應該是
int path_translated_len = ptlen + (env_path_info ? strlen(env_path_info) : 0);
程序處理流程:
main()
{
......
init_request_info(TSRMLS_C);
......
}
static void init_request_info(TSRMLS_D)
{
......
int path_translated_len = ptlen + env_path_info ? strlen(env_path_info) : 0;
......
path_translated = (char *) emalloc(path_translated_len + 1);
......
if (env_path_info) {
memcpy(path_translated + ptlen, env_path_info, path_translated_len - ptlen);
}
}
資料來源 http://www.hackeroo.com
- Feb 20 Wed 2008 10:05
[安全警戒線]php5.2.3遠程CGI緩衝溢出漏洞
close
全站熱搜
留言列表