CVE:CVE-2007-4060
CNNVD:CNNVD-200707-531
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结构指针。如果用户提交了超长请求的话，就可以触发这个溢出，导致执行任意指令。
solution:Upgrade frank_yaul corehttp to a higher version than 0.5.3_alpha,and avoid the version 0.5.3_alpha