Stack-based buffer overflow in the... CVE-2007-5365 CNNVD-200710-201

7.2 AV AC AU C I A
发布: 2007-10-11
修订: 2018-10-15

OpenBSD是一款开放源代码Unix类操作系统。 OpenBSD系统的DHCP协议实现上存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞控制服务器。 OpenBSD的options.c文件中的cons_options()函数没有正确地处理DHCP请求。如果远程攻击者所发送的DHCP请求中指定最大消息大小小于最小IP MTU(278)的话,就会在OpenBSD中导致dhcpd(8)覆盖栈缓冲区,执行任意指令。 漏洞存在于负责处理从客户端所接收到的DHCP选项的函数中。在src/usr.sbin/dhcpd/options.c文件中: int cons_options(struct packet *inpacket, struct dhcp_packet *outpacket, int mms, struct tree_cache **options, int overload, /* Overload flags that may be set. */ int terminate, int bootpp, u_int8_t *prl, int prl_len) { unsigned char priority_list[300]; int priority_len; unsigned char buffer[4096]; /* Really big buffer... */ int main_buffer_size; int mainbufix, bufix; int option_size; int length; dhcp.h中定义了DHCP_FIXED_LEN: if (!mms && inpacket && inpacket->options[DHO_DHCP_MAX_MESSAGE_SIZE].data && (inpacket->options[DHO_DHCP_MAX_MESSAGE_SIZE].len >= sizeof(u_int16_t))) mms = getUShort( inpacket->options[DHO_DHCP_MAX_MESSAGE_SIZE].data); if (mms) main_buffer_size = mms - DHCP_FIXED_LEN; else if (bootpp) main_buffer_size...

0%
当前有5条漏洞利用/PoC
当前有222条受影响产品信息