发布日期:2010-04-29
更新日期:2010-04-30
受影响系统:
Linux kernel 2.6.x
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 39794
CVE ID: CVE-2010-1173
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
*>
建议:
--------------------------------------------------------------------------------
厂商补丁:
Linux
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: