Linux Kernel sctp_process_unk_param()函数远程拒绝服务漏洞

受影响系统:

Linux kernel 2.6.x

描述:

Linux Kernel是开放源码操作系统Linux所使用的内核。

Linux Kernel的sctp_process_unk_param()函数在处理无效参数时存在拒绝服务漏洞:

if (NULL == *errp)
*errp = sctp_make_op_error_space(asoc, chunk,
      ntohs(chunk->chunk_hdr->length));

if (*errp) {
  sctp_init_cause(*errp, SCTP_ERROR_UNKNOWN_PARAM,
     WORD_ROUND(ntohs(param.p->length)));
  sctp_addto_chunk(*errp,
   WORD_ROUND(ntohs(param.p->length)),
      param.v);

在分配error块时,对所假设的最坏情况要求分配chunk_hdr->length的数据,但在sctp_init_cause中向error块注入了sctp_errhdr_t结构,因此对于所有参数都被破坏的最坏情况中要求的数据为chunk_hdr->length+(sizeof(sctp_errhdr_t)*param_count)字节。

<*来源:Chris Guo
  
  链接:
https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=584645
        http://article.gmane.org/gmane.linux.network/159531
*>

建议:

厂商补丁:

Linux
—–
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://article.gmane.org/gmane.linux.network/159531

发表评论?

0 条评论。

发表评论