安全研究

安全漏洞
lighttpd文件描述符数组远程拒绝服务漏洞

发布日期:2008-02-13
更新日期:2008-02-25

受影响系统:
LightTPD LightTPD 1.4.18
描述:
BUGTRAQ  ID: 27943
CVE(CAN) ID: CVE-2008-0983

Lighttpd是一款轻型的开放源码Web Server软件包。

Lighttpd在分配全局文件描述符数组时存在计算错误,远程攻击者可能利用此漏洞导致服务不可用。

创建文件描述符数组的方式如下:

fdevent.c:

15 fdevents *fdevent_init(size_t maxfds, fdevent_handler_t type) {
19         ev->fdarray = calloc(maxfds, sizeof(*ev->fdarray));

server.c:

1076         if (NULL == (srv->ev = fdevent_init(srv->max_fds + 1, srv->event_handler))) {

在同一文件中的之前部分:

679                 if (0 != getrlimit(RLIMIT_NOFILE, &rlim)) {
680                         log_error_write(srv, __FILE__, __LINE__,
681                                         "ss", "couldn't get 'max filedescriptors'",
682                                         strerror(errno));
683                         return -1;
684                 }
685
686                 if (use_rlimit && srv->srvconf.max_fds) {
687                         /* set rlimits */
688
689                         rlim.rlim_cur = srv->srvconf.max_fds;
690                         rlim.rlim_max = srv->srvconf.max_fds;
691
692                         if (0 != setrlimit(RLIMIT_NOFILE, &rlim)) {
693                                 log_error_write(srv, __FILE__, __LINE__,
694                                                 "ss", "couldn't set 'max filedescriptors'",
695                                                 strerror(errno));
696                                 return -1;
697                         }
698                 }


700                 /* #372: solaris need some fds extra for devpoll */
701                 if (rlim.rlim_cur > 10) rlim.rlim_cur -= 10;

827                         srv->max_fds = rlim.rlim_cur;

进程获取当前所配置的rlimit并保存到rlim中。如果配置设置了max_fds,就会覆盖当前任务所配置的。然后,max_fds以10递减,使用max_fds大小分配文件描述符数组。最终,系统可能给出多于max_fds个文件描述符,出现分段错误,导致崩溃。

<*来源:fdeletang
  
  链接:http://secunia.com/advisories/29066/
        http://trac.lighttpd.net/trac/ticket/1562
        http://www.debian.org/security/2008/dsa-1609
*>

建议:
临时解决方法:

* 如果没有运行solaris的话,标注server.c的701行
* 在fdevent.c文件的19行用maxfds + 10替换maxfds

厂商补丁:

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

补丁下载:
Source archives:

http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd_1.4.13-4etch9.dsc
Size/MD5 checksum:     1106 b9e468fa16bb1874ceef9596827a0aee
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd_1.4.13.orig.tar.gz
Size/MD5 checksum:   793309 3a64323b8482b0e8a6246dbfdb4c39dc
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd_1.4.13-4etch9.diff.gz
Size/MD5 checksum:    37524 b935ac31122e596b50393b32412c4634

Architecture independent packages:

http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-doc_1.4.13-4etch9_all.deb
Size/MD5 checksum:    99444 f4da891e3055833d72cedb093ebe961b

alpha architecture (DEC Alpha)

http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-cml_1.4.13-4etch9_alpha.deb
Size/MD5 checksum:    65236 07a7c10a1a9e8e5be6591eafdcb2af70
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd_1.4.13-4etch9_alpha.deb
Size/MD5 checksum:   319704 347221cd0521559c703e77a638101378
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-mysql-vhost_1.4.13-4etch9_alpha.deb
Size/MD5 checksum:    59970 cd8eebac5cafbfc86a94b7bdec622cdc
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-webdav_1.4.13-4etch9_alpha.deb
Size/MD5 checksum:    71720 2243711e9b479e7201bd075375341570
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-trigger-b4-dl_1.4.13-4etch9_alpha.deb
Size/MD5 checksum:    61748 e082eba9bed47e7d41b97b8c3faf2ab4
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-magnet_1.4.13-4etch9_alpha.deb
Size/MD5 checksum:    64804 2300124052e6cd3d16b5d912771a43d2

amd64 architecture (AMD x86_64 (AMD64))

http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-webdav_1.4.13-4etch9_amd64.deb
Size/MD5 checksum:    70042 f216ba125297f9617e9b93ae5e9c1528
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-trigger-b4-dl_1.4.13-4etch9_amd64.deb
Size/MD5 checksum:    60890 0cf8ebc595c92cf0e5133cfb0fdb45f1
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-cml_1.4.13-4etch9_amd64.deb
Size/MD5 checksum:    64028 22bef6211d9afd320292721a796671fb
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-magnet_1.4.13-4etch9_amd64.deb
Size/MD5 checksum:    63726 1908fe9c6b35d03ac8cb8ca25bc119a8
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-mysql-vhost_1.4.13-4etch9_amd64.deb
Size/MD5 checksum:    59294 a0bc743d9720b97db28764c6c1e0f79c
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd_1.4.13-4etch9_amd64.deb
Size/MD5 checksum:   297536 0de34b9f4ef546ae5f38991f4676143a

arm architecture (ARM)

http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-cml_1.4.13-4etch9_arm.deb
Size/MD5 checksum:    63132 28b693dd3dc65d743e84af5249e6867e
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-webdav_1.4.13-4etch9_arm.deb
Size/MD5 checksum:    69696 7c49c8c4dc0ae30526d0ccd02cec9376
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-trigger-b4-dl_1.4.13-4etch9_arm.deb
Size/MD5 checksum:    60870 bb8fa82a14b51ddf0c4de1e869755459
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-magnet_1.4.13-4etch9_arm.deb
Size/MD5 checksum:    62936 e831e83489ced32abeeae5c4a9b26e01
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd_1.4.13-4etch9_arm.deb
Size/MD5 checksum:   286636 77d3c387d79492d0655bf45930ed774a
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-mysql-vhost_1.4.13-4etch9_arm.deb
Size/MD5 checksum:    58744 7fe590b4b243a5d33f9328d23c25f037

hppa architecture (HP PA RISC)

http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-cml_1.4.13-4etch9_hppa.deb
Size/MD5 checksum:    65586 fc9bc390e05808b64c7f3323465f3860
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-mysql-vhost_1.4.13-4etch9_hppa.deb
Size/MD5 checksum:    59958 3ba195a79e46a6e896482ffd79121daf
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-magnet_1.4.13-4etch9_hppa.deb
Size/MD5 checksum:    65072 7f750a4b25c1449c76216a4006bed3ef
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-trigger-b4-dl_1.4.13-4etch9_hppa.deb
Size/MD5 checksum:    61960 98543c413da83a34f1a066ea6701b4b8
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-webdav_1.4.13-4etch9_hppa.deb
Size/MD5 checksum:    73006 d49b3f59f4014f2982157b383667d6f4
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd_1.4.13-4etch9_hppa.deb
Size/MD5 checksum:   324090 bb1800b50a874f7286bd8d2a6bd69806

i386 architecture (Intel ia32)

http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd_1.4.13-4etch9_i386.deb
Size/MD5 checksum:   289054 9d101f135f459437d125ea443d0f3652
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-webdav_1.4.13-4etch9_i386.deb
Size/MD5 checksum:    71210 9a6962f56b581b73320e0e8d75166aa3
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-magnet_1.4.13-4etch9_i386.deb
Size/MD5 checksum:    64018 864494c387986f427f3fa35a3eb8e688
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-trigger-b4-dl_1.4.13-4etch9_i386.deb
Size/MD5 checksum:    61270 45f87772bf860aa3463927599555948e
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-cml_1.4.13-4etch9_i386.deb
Size/MD5 checksum:    64260 7084c5bb2d0145dab2ce6902d4b3f251
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-mysql-vhost_1.4.13-4etch9_i386.deb
Size/MD5 checksum:    59494 eb4ce22389b5eacbe7f279731f89dad7

mips architecture (MIPS (Big Endian))

http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-mysql-vhost_1.4.13-4etch9_mips.deb
Size/MD5 checksum:    58634 2dead181d2874aba311da3c28ae5ce00
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd_1.4.13-4etch9_mips.deb
Size/MD5 checksum:   296406 64a97a2fcd2d78a4e3a9e1c57253c5ad
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-trigger-b4-dl_1.4.13-4etch9_mips.deb
Size/MD5 checksum:    60026 bccc394d18921f666d9cda04f6c50e6e
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-webdav_1.4.13-4etch9_mips.deb
Size/MD5 checksum:    69302 003ca7f181dead692e8070206ec555f8
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-magnet_1.4.13-4etch9_mips.deb
Size/MD5 checksum:    62598 027b727988bc41f1f61bf208dbffd03e
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-cml_1.4.13-4etch9_mips.deb
Size/MD5 checksum:    62724 16f4243a6d66a7e0cfea2a2c5430eed4

powerpc architecture (PowerPC)

http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd_1.4.13-4etch9_powerpc.deb
Size/MD5 checksum:   324104 ff3b010a174d956f4b2e1d4907883290
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-magnet_1.4.13-4etch9_powerpc.deb
Size/MD5 checksum:    65190 ed5a4ddac8ea7fa260b3ffed37b03b84
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-cml_1.4.13-4etch9_powerpc.deb
Size/MD5 checksum:    65462 c5777f10ab6a3ee8776d71c53808143c
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-mysql-vhost_1.4.13-4etch9_powerpc.deb
Size/MD5 checksum:    60718 c8c9da07c137e73c16fda7e1347a61b4
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-trigger-b4-dl_1.4.13-4etch9_powerpc.deb
Size/MD5 checksum:    62528 407cf5d91565f8d22cb54e540e95cec0
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-webdav_1.4.13-4etch9_powerpc.deb
Size/MD5 checksum:    71840 2d40c1080b696a949262cf19dafa93b7

s390 architecture (IBM S/390)

http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-mysql-vhost_1.4.13-4etch9_s390.deb
Size/MD5 checksum:    59730 aa85c7a60138cd531b2693a0f02e7466
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-cml_1.4.13-4etch9_s390.deb
Size/MD5 checksum:    64778 351ff20233c9ac9c897489b04129976f
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd_1.4.13-4etch9_s390.deb
Size/MD5 checksum:   307340 b84df276716669831f54ca5926158ba0
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-webdav_1.4.13-4etch9_s390.deb
Size/MD5 checksum:    71520 960bbc9184cda5625fec9e5c8f721751
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-trigger-b4-dl_1.4.13-4etch9_s390.deb
Size/MD5 checksum:    61230 c5bc149d49c8c8c0eadb53098c5802b8
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-magnet_1.4.13-4etch9_s390.deb
Size/MD5 checksum:    64392 4505fe625ce17c305a79c74226150150

sparc architecture (Sun SPARC/UltraSPARC)

http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd_1.4.13-4etch9_sparc.deb
Size/MD5 checksum:   284464 660005588988330ef2742e208e18b1ed
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-mysql-vhost_1.4.13-4etch9_sparc.deb
Size/MD5 checksum:    58928 739d374e9412b1c33ffcc4d84e06ff4c
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-cml_1.4.13-4etch9_sparc.deb
Size/MD5 checksum:    63490 57c717bbd4a6c7a27c2b3ce664b447c6
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-trigger-b4-dl_1.4.13-4etch9_sparc.deb
Size/MD5 checksum:    60574 0fe2a1a268d154fdb6a11ef33a7c9a9f
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-magnet_1.4.13-4etch9_sparc.deb
Size/MD5 checksum:    63466 bbb49f9396ba560a5db3d4f30a78ab02
http://security.debian.org/pool/updates/main/l/lighttpd/lighttpd-mod-webdav_1.4.13-4etch9_sparc.deb
Size/MD5 checksum:    69956 cc2a681cb6e423b0d91aca6691628088

补丁安装方法:

1. 手工安装补丁包:

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

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

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

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

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

http://trac.lighttpd.net/trac/attachment/ticket/1562/Fix-372-and-1562.patch

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