安全研究

安全漏洞
Lighttpd Mod_Fast CGI模块请求头远程溢出漏洞

发布日期:2007-09-10
更新日期:2007-09-11

受影响系统:
LightTPD LightTPD 1.4.17
不受影响系统:
LightTPD LightTPD 1.4.18
描述:
BUGTRAQ  ID: 25622
CVE(CAN) ID: CVE-2007-4727

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

Lighttpd的mod_fastcgi扩展在处理HTTP请求头时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞控制服务器。

fcgi_env_add_request_headers(srv, con, p);
fcgi_header(&(header), FCGI_PARAMS, request_id, p->fcgi_env->used, 0);
buffer_append_memory(b, (const char *)&header, sizeof(header));
buffer_append_memory(b, (const char *)p->fcgi_env->ptr, p->fcgi_env->used);

上面的代码会读取所有客户端所请求的头并创建fastcgi头,然后将fastcgi头发送给PHP,但没有考虑contentLength是否大于0xffff,因此可能出现溢出:

static int fcgi_header(FCGI_Header * header, unsigned char type, size_t request_id, int contentLength, unsigned char paddingLength) {
...
     header->contentLengthB0 = contentLength & 0xff;
     header->contentLengthB1 = (contentLength >> 8) & 0xff;
...

如果用户所提交的HTTP请求包含有超长头的话,就可能添加或替换PHP头,如SCRIPT_FILENAME,导致执行任意指令。

<*来源:Mattias Bengtsson (mattias@secweb.se
        Philip Olausson (po@secweb.se
  
  链接:http://secweb.se/en/advisories/lighttpd-fastcgi-remote-vulnerability/
        http://secunia.com/advisories/26732/
        http://www.lighttpd.net/assets/2007/9/9/lighttpd_sa_2007_12.txt
*>

测试方法:

警 告

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

http://secweb.se/files/lighttpd-fastcgi-remote-vulnerability.c

建议:
厂商补丁:

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

http://www.lighttpd.net/download/lighttpd-1.4.18.tar.bz2

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