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(网友投票)