CVE:CVE-2007-4727
CNNVD:CNNVD-200709-142
lighttpd是德国软件开发者Jan Kneschke所研发的一款开源的Web服务器，它的主要特点是仅需少量的内存及CPU资源即可达到同类网页服务器的性能。
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，导致执行任意指令。
solution:Upgrade lighttpd lighttpd to a higher version than 1.4.15,and avoid the version (,1.4.15]