安全研究

安全漏洞
Firefly媒体服务器webserver.c文件远程格式串处理漏洞

发布日期:2007-11-02
更新日期:2007-11-05

受影响系统:
Firefly Media Server <= 0.2.4
描述:
BUGTRAQ  ID: 26310
CVE(CAN) ID: CVE-2007-5825

Firefly是Roku SoundBridge和iTunes所使用的开源媒体服务器。

Firefly实现的Web服务器存在格式串处理漏洞,远程攻击者可能利用此漏洞控制服务器。

在Firefly的webserver.c文件中,ws_dispatcher函数的916-920行及ws_addarg函数的1171行存在vsnprintf()相关的格式串漏洞。ws_addarg函数使用了第三个参数做为格式标识符,由于这个参数来自请求头的Authorization字段所解码的用户名,因此可能是用户可控的。对ws_addarg的调用发生在预认证阶段,且对格式串的长度也没有限制。成功利用这个漏洞可以在受影响系统上执行任意指令。

    ws_decodepassword(auth,&username,&password);
    if(auth_handler(username,password))
        can_dispatch=1;
    ws_addarg(&pwsc->request_vars,"HTTP_USER",username);
    ws_addarg(&pwsc->request_vars,"HTTP_PASSWD",password);

int ws_addarg(ARGLIST *root, char *key, char *fmt, ...) {
...
    va_start(ap,fmt);
    vsnprintf(value,sizeof(value),fmt,ap);
    va_end(ap);

<*来源:nnp (version5@gmail.com
  
  链接:http://marc.info/?l=bugtraq&m=119402709107594&w=2
        http://www.debian.org/security/2008/dsa-1597
        http://security.gentoo.org/glsa/glsa-200712-18.xml
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

http://marc.info/?l=bugtraq&m=119402709107594&q=p3

建议:
厂商补丁:

Debian
------
Debian已经为此发布了一个安全公告(DSA-1597-2)以及相应补丁:
DSA-1597-2:New mt-daapd package fix regression
链接:http://www.debian.org/security/2008/dsa-1597

补丁下载:
Source archives:

http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2.dsc
Size/MD5 checksum:      765 6ca72b17e6f40d1a02651e94488dcb49
http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2.diff.gz
Size/MD5 checksum:     8995 467b2da8c4fda2ce457d58ecdae50ab7
http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376.orig.tar.gz
Size/MD5 checksum:   995301 c427c26e93914290b7cd615835ea333a

alpha architecture (DEC Alpha)

http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2_alpha.deb
Size/MD5 checksum:   637480 72c53899fba14e24dab492cf5bf1e7b9

amd64 architecture (AMD x86_64 (AMD64))

http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2_amd64.deb
Size/MD5 checksum:   611854 7a2e898b954d46685da0276e6cc50c15

arm architecture (ARM)

http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2_arm.deb
Size/MD5 checksum:   593970 e0d68246bba4c79b9bb939c70bb90def

hppa architecture (HP PA RISC)

http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2_hppa.deb
Size/MD5 checksum:   630644 80c003af6df36becf5c88b12ff3fad94

i386 architecture (Intel ia32)

http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2_i386.deb
Size/MD5 checksum:   598998 233350989d451e8e5138faaa97c1ffb3

ia64 architecture (Intel ia64)

http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2_ia64.deb
Size/MD5 checksum:   680220 e4a38946ff00aef9721242974ef90385

mips architecture (MIPS (Big Endian))

http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2_mips.deb
Size/MD5 checksum:   620342 9574939e71636d91df4a86c8f46c51c1

mipsel architecture (MIPS (Little Endian))

http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2_mipsel.deb
Size/MD5 checksum:   615384 1dbcb96200006414080402d8d96ec7df

powerpc architecture (PowerPC)

http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2_powerpc.deb
Size/MD5 checksum:   620380 98d4eef2a6ece485cd519cd82997100c

s390 architecture (IBM S/390)

http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2_s390.deb
Size/MD5 checksum:   623264 cd1d9cf611212cbeb72347071ec0efa6

sparc architecture (Sun SPARC/UltraSPARC)

http://security.debian.org/pool/updates/main/m/mt-daapd/mt-daapd_0.2.4+r1376-1.1+etch2_sparc.deb
Size/MD5 checksum:   595508 dd4c18f06eaf2c3b45ffe138780c17ec

补丁安装方法:

1. 手工安装补丁包:

  首先,使用下面的命令来下载补丁软件:
  # wget url  (url是补丁下载链接地址)

  然后,使用下面的命令来安装补丁:  
  # dpkg -i file.deb (file是相应的补丁名)

2. 使用apt-get自动安装补丁包:

   首先,使用下面的命令更新内部数据库:
   # apt-get update
  
   然后,使用下面的命令安装更新软件包:
   # apt-get upgrade

Gentoo
------
Gentoo已经为此发布了一个安全公告(GLSA-200712-18)以及相应补丁:
GLSA-200712-18:Multi-Threaded DAAP Daemon: Multiple vulnerabilities
链接:http://security.gentoo.org/glsa/glsa-200712-18.xml

所有多线程DAAP守护程序用户都应升级到最新版本:

    # emerge --sync
    # emerge --ask --oneshot --verbose ">=media-sound/mt-daapd-0.2.4.1"

Firefly
-------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://sourceforge.net/project/showfiles.php?group_id=98211

浏览次数:3034
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障