安全研究

安全漏洞
FishSound库远程Speex解码代码执行漏洞

发布日期:2008-04-07
更新日期:2008-04-11

受影响系统:
CSIRO FishSound <= 0.9.0
不受影响系统:
CSIRO FishSound 0.9.1
描述:
BUGTRAQ  ID: 28665
CVE(CAN) ID: CVE-2008-1686

fishsound库提供一个编程接口,允许使用Xiph.Org codec(FLAC、Speex和Vorbis)编码和解码音频数据。

fishsound库所使用的Speex库在处理Speex头时存在数组索引错误,如果特制的Speex流在头中包含有负数的modeID字段的话就可能导致执行任意指令。

Speex头中包含有32位的modeID字段,libspeex将其解释为有符的int型(spx_int32_t)。正常的使用方法是索引到全局模式列表以检索SpeexMode *:

mode = (SpeexMode *)speex_mode_list[modeID];

然后创建解码器:

st = speex_decoder_init(mode);

这会在libspeex中调用speex_decoder_init(),类似于:

void *speex_decoder_init(const SpeexMode *mode)
{
   return mode->dec_init(mode);
}

因此如果没有保证流头中所给出的modeID处于speex_mode_list[]范围中,就会导致执行任意指令。fishsound检查了上边界(modeID < SPEEX_NB_MODES),但没有检查负数值。

<*来源:Conrad Parker (conrad@metadecks.org
  
  链接:http://secunia.com/advisories/29727/
        http://blog.kfish.org/2008/04/release-libfishsound-091.html
        http://www.ocert.org/advisories/ocert-2008-2.html
        http://lists.xiph.org/pipermail/speex-dev/2008-April/006636.html
        http://security.gentoo.org/glsa/glsa-200804-17.xml
        http://www.debian.org/security/2008/dsa-1586
        http://www.debian.org/security/2008/dsa-1584
*>

建议:
厂商补丁:

Debian
------
Debian已经为此发布了一个安全公告(DSA-1584-1)以及相应补丁:
DSA-1584-1:New libfissound packages fix execution of arbitrary
链接:http://www.debian.org/security/2008/dsa-1584

补丁下载:
Source archives:

http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound_0.7.0.orig.tar.gz
Size/MD5 checksum:   426487 00ece8c9a0363b37957ce670bcf270d3
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound_0.7.0-2etch1.dsc
Size/MD5 checksum:      659 d72d4922c70c6bb10dff6ace5a814455
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound_0.7.0-2etch1.diff.gz
Size/MD5 checksum:    16054 c5842b27bd7a05ef9bd26e701dfc56dc

alpha architecture (DEC Alpha)

http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dev_0.7.0-2etch1_alpha.deb
Size/MD5 checksum:    34582 9ef817deb3b892d9fa9f7fdc4a94e6a5
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1_0.7.0-2etch1_alpha.deb
Size/MD5 checksum:    15304 eed92cc88865ae99cc768c0a7b33019c
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dbg_0.7.0-2etch1_alpha.deb
Size/MD5 checksum:     7740 57cd0eae0976b9d78be65d0aeba32a3e

amd64 architecture (AMD x86_64 (AMD64))

http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dev_0.7.0-2etch1_amd64.deb
Size/MD5 checksum:    30786 64fd312521a927ceb867f63e5f4734a5
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dbg_0.7.0-2etch1_amd64.deb
Size/MD5 checksum:     7794 8fb36c5bdd40a8dc5c370802da6ec050
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1_0.7.0-2etch1_amd64.deb
Size/MD5 checksum:    14334 a6845973bc2f61f4783710a5797e5484

arm architecture (ARM)

http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dev_0.7.0-2etch1_arm.deb
Size/MD5 checksum:    29224 35d4c9d5a750ba8dd53ba6fd5bb248df
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1_0.7.0-2etch1_arm.deb
Size/MD5 checksum:    12462 6693b054221d19c6da6c2069466ef7dc
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dbg_0.7.0-2etch1_arm.deb
Size/MD5 checksum:     7882 560e18366ae1e15d5aef32855f0ab731

hppa architecture (HP PA RISC)

http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1_0.7.0-2etch1_hppa.deb
Size/MD5 checksum:    15162 68e6bc1466fcfa4d73edb3d760a9e5b8
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dbg_0.7.0-2etch1_hppa.deb
Size/MD5 checksum:     7802 5922374807b136070b2f002ba716807f
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dev_0.7.0-2etch1_hppa.deb
Size/MD5 checksum:    31662 3c9fbc584f7942ff0ea88dd27daebbfd

i386 architecture (Intel ia32)

http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dev_0.7.0-2etch1_i386.deb
Size/MD5 checksum:    29344 74a5b956c3dc3450f3da2ec91dcf2a34
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1_0.7.0-2etch1_i386.deb
Size/MD5 checksum:    13384 559730ed3949728fc0dcf77d19a05712
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dbg_0.7.0-2etch1_i386.deb
Size/MD5 checksum:     7614 c2b9b6a8343bda423068fa8965411bf6

ia64 architecture (Intel ia64)

http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dbg_0.7.0-2etch1_ia64.deb
Size/MD5 checksum:     7832 dfc5dbc81fb32225763581dbd7c04b9b
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1_0.7.0-2etch1_ia64.deb
Size/MD5 checksum:    18426 e0adf330dba7d6cc800de96e24897ccf
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dev_0.7.0-2etch1_ia64.deb
Size/MD5 checksum:    35658 671ac1c23579b0274ee4d11837ceaea1

mips architecture (MIPS (Big Endian))

http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dbg_0.7.0-2etch1_mips.deb
Size/MD5 checksum:     8192 d2f144651551538d9eb7364408000d93
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1_0.7.0-2etch1_mips.deb
Size/MD5 checksum:    13568 c21ca7014120fb083d014adbb0a4b33f
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dev_0.7.0-2etch1_mips.deb
Size/MD5 checksum:    31578 4da77e051c94377ace4e567f96f22b07

mipsel architecture (MIPS (Little Endian))

http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1_0.7.0-2etch1_mipsel.deb
Size/MD5 checksum:    16532 7c41c702fd586b8eea66ecc57c742829
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dbg_0.7.0-2etch1_mipsel.deb
Size/MD5 checksum:     8742 948111077a371b6b79a6e176c8844a5b
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dev_0.7.0-2etch1_mipsel.deb
Size/MD5 checksum:    35456 2baa784478f106c5cf10b4eaf003db8e

powerpc architecture (PowerPC)

http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dbg_0.7.0-2etch1_powerpc.deb
Size/MD5 checksum:     8984 df70ba8da43c86923cd88c74676ef9ef
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1_0.7.0-2etch1_powerpc.deb
Size/MD5 checksum:    15040 22e46a44ff17b0c1d60908cd0b61ccfc
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dev_0.7.0-2etch1_powerpc.deb
Size/MD5 checksum:    31074 fa6ab24dcf4e23f52a8d67dcaf56e40f

s390 architecture (IBM S/390)

http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dev_0.7.0-2etch1_s390.deb
Size/MD5 checksum:    31390 04834db2f07e1ea50eb590d95bc78dcd
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1_0.7.0-2etch1_s390.deb
Size/MD5 checksum:    14872 21e26171f0205856b65f6727a32b3edf
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dbg_0.7.0-2etch1_s390.deb
Size/MD5 checksum:     7540 fdc0a47c6522993232751be26725ce3b

sparc architecture (Sun SPARC/UltraSPARC)

http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dbg_0.7.0-2etch1_sparc.deb
Size/MD5 checksum:     7686 8483df0677d953b7d10335a6063635fa
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1_0.7.0-2etch1_sparc.deb
Size/MD5 checksum:    12432 8c3643ab5a8cf220343e0e583d21b947
http://security.debian.org/pool/updates/main/libf/libfishsound/libfishsound1-dev_0.7.0-2etch1_sparc.deb
Size/MD5 checksum:    30008 3cf9fbcaf627dc07d64d2330b5149cce

补丁安装方法:

1. 手工安装补丁包:

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

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

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

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

Gentoo
------
Gentoo已经为此发布了一个安全公告(GLSA-200804-17)以及相应补丁:
GLSA-200804-17:Speex: User-assisted execution of arbitrary code
链接:http://security.gentoo.org/glsa/glsa-200804-17.xml

所有Speex用户都应升级到最新版本:

    # emerge --sync
    # emerge --ask --oneshot --verbose ">=media-libs/speex-1.2_beta3_p2"

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

http://www.annodex.net/software/libfishsound/download/libfishsound-0.9.1.tar.gz

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