影响
[url=/code/]程序[/url]
:PostgreSQL 7.2.2版及其之前的版本
详细描述:
PostgreSQL存在远程DoS缺陷 。PostgreSQL
[url=/code/sql/]数据库[/url]
是一款高级对象-关系型
[url=/code/sql/]数据库[/url]
管理
[url=/jsj/system/]系统[/url]
,支持SQL标准子集扩展,是目前功能最强大,特性最丰富和最复杂的自由软件
[url=/code/sql/]数据库[/url]
[url=/jsj/system/]系统[/url]
。 当连接到PostgreSQL
[url=/code/sql/]数据库[/url]
时,postmaster将产生一个新的子
[url=/code/]程序[/url]
,子
[url=/code/]程序[/url]
将调用src/backend/postmaster/postmaster.c:DoBackend()函数。在处理启动信息(src/include/libpq/pqcomm.h)之后,将调用src/backend/libpq/auth.c:ClientAuthentication() 函数来执行用户鉴定。利用与
[url=/]攻击[/url]
者的主机匹配的pg_hba.conf文件进行登录,
[url=/]攻击[/url]
者能导致src/backend/libpq/auth.c:recv_and_check_password0()函数失效,将引发DoS
[url=/]攻击[/url]
。 下面是来自src/backend/libpq/auth.c的一段代码:
[snip]
static int recv_and_check_password0(Port *port) {
int32 len;
char *buf; if (pq_getint(%26amp;len, 4) == EOF)
return STATUS_EOF;
len -= 4;
buf = palloc(len); /* len is taken from a packet */
[snip]
palloced存储器的大小取决于用户的输入。
临时解决方案:禁止不受信任的用户进行
[url=/]网络[/url]
访问。目前厂商未公布该缺陷补丁,请用户及时关注厂商站点:
http://www.postgresql.org
[url=java:copyUrl(]
复制地址,推荐给QQ、MSN上的好友[/url]
[url=/bbs/]
进入黑客手册技术论坛和大家一起讨论[/url]