NullLogic Groupware多个远程安全漏洞

受影响系统:

NullLogic Groupware 1.2.7

描述:


CVE(CAN) ID: CVE-2009-2354,CVE-2009-2355,CVE-2009-2356

Groupware是一个开源的团队协作软件,包含有即时消息、公共论坛、邮件等多种功能。

远程攻击者可以通过向Groupware的多个模块提交恶意参数请求导致拒绝服务或执行任意代码。

1) Groupware在与数据库服务器通讯时通常会调用sql_queryf函数,该函数会使用C格式字符串和其他参数来创建SQL查询。例如,在试图登录的时候,auth_checkpass函数会生成以下查询:

if ((sqr=sql_queryf(sid, "SELECT userid, password FROM gw_users WHERE username = ‘%s’ and enabled > 0", sid->dat->user_username))<0) {

由于可以从请求的用户名参数控制sid->dat->user_username的值,因此可以通过SQL注入的方式控制数据库所执行的SQL查询。

2) Groupware的论坛模块使用用户传送的参数来选择用户所要访问的论坛。由于没有正确地验证这个输入参数,如果远程攻击者向fmessagelist函数传送了空的或非数字的字符串,就会导致崩溃。

3) 当Groupware配置为使用PostgreSQL数据库服务器时会调用以下函数:

int pgsqlQuery(CONN *sid, int sqr, char *sqlquery)
{
    …
    char query[8192];
    …
    memset(query, 0, sizeof(query));
    snprintf(query, sizeof(query)-1, "DECLARE myportal CURSOR FOR ");
    strncat(query, sqlquery, sizeof(query));
    …
}

该函数在栈上为查询分配了8192字节的缓冲区,然后继续创建SQL查询,但在创建28字节固定长度的字符串时最多又连接了8192字节的数据,因此写到栈上的全部数据(8220字节)大于最初所分配的缓冲区。理论上只要所传送的sqlquery值大于8163字节,就可以溢出函数基指针(%ebp)和返回地址(%eip)。

<*来源:Tim Brown (securityfocus@machine.org.uk
  
  链接:http://marc.info/?l=bugtraq&m=124689513611881&w=2
*>

建议:


厂商补丁:

NullLogic
———
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://nullwebmail.sourceforge.net/groupware/

发表评论?

0 条评论。

发表评论