受影响系统:
yoopss YOPS 2009
描述:
YOPS(Your Own Personal [WEB] Server)是用C编写的Linux平台HTTP服务器。
YOPS服务器的http_parse_request_header函数没有对从HTTP命令((HEAD/GET/POST)所接收到的缓冲区执行边界检查便在swebs_record_log函数中用作了logger变量的参数,超长请求参数可以触发缓冲区溢出,导致执行任意代码。以下是有漏洞的代码段:
— http.c snippet —
int http_parse_request_header(char *data, struct http_request_header *h)
{
int r;
int ver, rev;
char *s, *tok, *l, *prm;
[…]
r = sscanf(h->http, " HTTP/%d.%d ", &ver, &rev);
if (r != 2)
return -400;
[…]
}
— END snippet —
— swebs.c snippet —
int swebs_record_log(int log, JOB *job)
{
int err;
time_t now;
char timestr[32];
char logrec[MAX_REQUEST_LINE_LEN + 1];
[…]
sprintf (
logrec,
"%s\t[%s]\t\"%s\"\t(%d+%d/%d)\t%d",
job->client,
timestr,
job->hdr.request_line,
job->response_hlen,
job->response_blen_sent,
job->response_blen,
job->status
);
[…]
}
— END snippet —
<*来源:Rodrigo Escobar (ipax@dclabs.com.br)
链接:http://marc.info/?l=bugtraq&m=128415017107354&w=2
*>
测试方法:
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!http://www.exploit-db.com/exploits/14976/
建议:
厂商补丁:
yoopss
——
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
0 条评论。