BUGTRAQ ID: 25120
CoreHTTP是一款小型的Web服务器。
CoreHTTP在处理超长用户请求时存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞控制服务器。
CoreHTTP的http.c文件中存在缓冲区溢出漏洞:
-----------------------------------------------------------------------
struct sprock_t *HttpSprockMake(struct sprock_t *parentsprock) {
struct sprock_t *sprocket;
char req[PATHSIZE], url[PATHSIZE], status[PATHSIZE], temp[BUFSIZE],
...
if ((sprocket = (struct sprock_t *)
malloc(sizeof(struct sprock_t))) == NULL) return NULL;
...
sscanf(parentsprock->buffer, \"%[A-Za-z] %s%*[ \\t\\n]\", req, url);
!(the bug/overwrite) --------------------------------------^----^
strncpy(sprocket->parent->url, url, PATHSIZE);
!(the problem) -^
...
for (i = 0; req[i] != \'\\0\'; i++)
req[i] = toupper(req[i]);
!(another problem) -^
...
}
上面代码中的sscanf()调用没有对写入req[]或url[]执行边界检查,导致可能覆盖*sprocket结构指针。如果用户提交了超长请求的话,就可以触发这个溢出,导致执行任意指令。
CoreHTTP CoreHTTP 0.5.3 alpha
CoreHTTP
--------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
<a href=\"http://corehttp.sourceforge.net/\" target=\"_blank\">http://corehttp.sourceforge.net/</a>
暂无评论