积极预防 及时发现
快速响应 力保恢复
PostgreSQL存在远程DoS缺陷 (Other,缺陷)
发布时间:2003-03-17 信息来源:管理员

涉及程序: PostgreSQL 7.2.2版及其之前的版本 描述: PostgreSQL存在远程DoS缺陷 详细: PostgreSQL数据库是一款高级对象-关系型数据库管理系统,支持SQL标准子集扩展,是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。 当连接到PostgreSQL数据库时,postmaster将产生一个新的子程序,子程序将调用src/backend/postmaster/postmaster.c:DoBackend()函数。在处理启动信息(src/include/libpq/pqcomm.h)之后,将调用src/backend/libpq/auth.c:ClientAuthentication() 函数来执行用户鉴定。利用与攻击者的主机匹配的pg_hba.conf文件进行登录,攻击者能导致src/backend/libpq/auth.c:recv_and_check_password0()函数失效,将引发DoS攻击。 下面是来自src/backend/libpq/auth.c的一段代码: static int recv_and_check_password0(Port *port) { int32 len; char *buf; if (pq_getint(&len, 4) == EOF) return STATUS_EOF; len -= 4; buf = palloc(len); /* len is taken from a packet */ palloced存储器的大小取决于用户的输入。 攻击方法: 暂无有效攻击代码 解决方案: 目前厂商尚未公布该缺陷补丁,建议用户随时关注厂商站点: http://www.postgresql.org 临时解决方案: 禁止不受信任的用户进行网络访问。