CVE:CVE-2005-3656
CNNVD:CNNVD-200512-729
mod_auth_pgsql apache模块允许对PostgreSQL数据库中存储的数据执行用户认证。
mod_auth_pgsql apache模块在处理日志记录时存在漏洞，远程攻击者可能利用此漏洞在主机上执行任意指令。
由于一个设计错误，mod_auth_pgsql模块中的多个日志函数将用户提供的值用作了格式指示符的输入，例如：
 ap_log_rerror(APLOG_MARK， APLOG_ERR， 0， r， pg_errstr);
如果这部分错误消息中包含有格式串指示符，就会对其进行处理。例如，如果用户名为"%x%x%x%x%x"的话，则目标httpd的error_log文件中就会出现类似于以下的内容：
[Tue Sep 23 11:34:38 2005] [error] [client 10.1.10.11] mod_auth_pgsql:
 Password for user 406869a083b3c900083b3cb3 not found (PG-Authoritative)
16进制字符的序列是ap_log_rerror()函数将输入字符串解析为格式串的结果，包含有栈中的值。如果提供的名称可以导致无效的内存访问的话，子进程就会退出，留下类似于以下的错误日志：
[Tue Sep 24 11:25:53 2005] [notice] child pid 12345 exit signal
 Segmentation fault (11)
成功利用这个漏洞的攻击者可以在httpd环境中执行任意代码。
solution:Upgrade guiseppe_tanzilli_and_matthias_eckermann mod_auth_pgsql to a higher version than 2.0.3,0.9.5,0.9.6,and avoid the version (,2.0.3],0.9.5,0.9.6