Apache是一款开放源代码流行的Httpd服务程序。 Apache包含的mod_disk_cache模块存在信息泄露问题,远程攻击者可以利用这个漏洞获得客户端验证的敏感信息。 mod_disk_cache模块把所有客户端验证信息存储在磁盘上,问题存在于modules/experimental/mod_disk_cache.c代码中的write_headers()函数: ======================================================================== /* Parse the vary header and dump those fields from the headers_in. */ /* Make call to the same thing cache_select_url calls to crack Vary. */ /* @@@ Some day, not today. */ if (r->headers_in) { ~ int i; ~ apr_table_entry_t *elts = (apr_table_entry_t *) ~ apr_table_elts(r->headers_in)->elts; ~ for (i = 0; i < apr_table_elts(r->headers_in)->nelts; ++i) { ~ if (elts[i].key != NULL) { ~ buf = apr_pstrcat(r->pool, elts[i].key, \": \", elts[i].val, ~ CRLF, NULL); ~ amt = strlen(buf); ~ apr_file_write(hfd, buf, &amt); ~ } ~ } ~ buf = apr_pstrcat(r->pool, CRLF, NULL); ~ amt = strlen(buf); ~ apr_file_write(hfd, buf, &amt); } ========================================================================...
Apache是一款开放源代码流行的Httpd服务程序。 Apache包含的mod_disk_cache模块存在信息泄露问题,远程攻击者可以利用这个漏洞获得客户端验证的敏感信息。 mod_disk_cache模块把所有客户端验证信息存储在磁盘上,问题存在于modules/experimental/mod_disk_cache.c代码中的write_headers()函数: ======================================================================== /* Parse the vary header and dump those fields from the headers_in. */ /* Make call to the same thing cache_select_url calls to crack Vary. */ /* @@@ Some day, not today. */ if (r->headers_in) { ~ int i; ~ apr_table_entry_t *elts = (apr_table_entry_t *) ~ apr_table_elts(r->headers_in)->elts; ~ for (i = 0; i < apr_table_elts(r->headers_in)->nelts; ++i) { ~ if (elts[i].key != NULL) { ~ buf = apr_pstrcat(r->pool, elts[i].key, \": \", elts[i].val, ~ CRLF, NULL); ~ amt = strlen(buf); ~ apr_file_write(hfd, buf, &amt); ~ } ~ } ~ buf = apr_pstrcat(r->pool, CRLF, NULL); ~ amt = strlen(buf); ~ apr_file_write(hfd, buf, &amt); } ======================================================================== 所有r->headers_in字段写入到磁盘上,这个字段包含所有客户端的验证信息。因此攻击者可以借此获得一些验证的明文密码等信息。