Windows DHCP ServerÔ¶³Ì´úÂëÖ´ÐÐÎó²îÆÊÎö£¨CVE-2019-0626£©

Ðû²¼Ê±¼ä 2019-02-19
Îó²îÅä¾°

2ÔÂ12ÈÕ£¬£¬£¬Î¢ÈíÐû²¼2Ô·ÝÔ¶ÈÀýÐÐÇ徲ͨ¸æ£¬£¬£¬ÐÞ¸´Á˶à¸ö¸ßΣÎó²î£¬£¬£¬ÆäÖаüÀ¨Windows DHCP ServerÔ¶³Ì´úÂëÖ´ÐÐÎó²îCVE-2019-0626¡£¡£ ¡£¡£¡£ ¡£¡£µ±¹¥»÷ÕßÏòDHCPЧÀÍÆ÷·¢ËÍÈ«ÐÄÉè¼ÆµÄÊý¾Ý°ü²¢ÀÖ³ÉʹÓú󣬣¬£¬¾Í¿ÉÒÔÔÚDHCPЧÀÍÖÐÖ´ÐÐí§Òâ´úÂ룬£¬£¬Îó²îÓ°Ïì¹æÄ£½Ï´ó¡£¡£ ¡£¡£¡£ ¡£¡£Õë¶Ô´ËÎó²î£¬£¬£¬°ÙÀÖ²©ADLabµÚһʱ¼ä¶ÔÆä¾ÙÐÐÁËÏêϸÆÊÎö¡£¡£ ¡£¡£¡£ ¡£¡£

Îó²îÓ°Ïì°æ±¾

Windows 7
Windows 8.1
Windows 10 
Windows Server 2008
Windows Server 2012
Windows Server 2016

Windows Server 2019


ЭÒé¼ò½é


DHCP£¬£¬£¬¶¯Ì¬Ö÷»úÉèÖÃЭÒ飬£¬£¬Ç°ÉíÊÇBOOTPЭÒ飬£¬£¬ÊÇÒ»¸ö¾ÖÓòÍøµÄÍøÂçЭÒé¡£¡£ ¡£¡£¡£ ¡£¡£DHCPͨ³£ÓÃÓÚ¼¯ÖÐÖÎÀí·ÖÅÉIPµØµã£¬£¬£¬Ê¹client¶¯Ì¬µØ»ñµÃIPµØµã¡¢GatewayµØµã¡¢DNSЧÀÍÆ÷µØµãµÈÐÅÏ¢¡£¡£ ¡£¡£¡£ ¡£¡£DHCP¿Í»§¶ËºÍDHCPЧÀͶ˵Ľ»»¥Àú³ÌÈçÏÂͼËùʾ¡£¡£ ¡£¡£¡£ ¡£¡£


welcome-°ÙÀÖ²©


´«ÊäµÄDHCPЭÒ鱨ÎÄÐè×ñÕÕÒÔÏÂÃûÌãº


welcome-°ÙÀÖ²©


DHCP°üÀ¨Ðí¶àÀàÐ͵ÄOption£¬£¬£¬Ã¿¸öOptionÓÉType¡¢LengthºÍDataÈý¸ö×Ö¶Î×é³É¡£¡£ ¡£¡£¡£ ¡£¡£


welcome-°ÙÀÖ²©


Typeȡֵ¹æÄ£1~255£¬£¬£¬²¿·ÖTypeÀàÐÍÈçÏÂͼËùʾ¡£¡£ ¡£¡£¡£ ¡£¡£


welcome-°ÙÀÖ²©


DHCPЧÀÍÔÚ´¦Öóͷ£Vendor Specific ÀàÐÍ£¨Type=43£©µÄOption½á¹¹±£´æÇå¾²Îó²î¡£¡£ ¡£¡£¡£ ¡£¡£Ê×ÏÈ¿´ÏÂDHCPЧÀͳÌÐò¶ÔOptionµÄ´¦Öóͷ£Àú³Ì£¬£¬£¬ ProcessMessageº¯ÊýÈÏÕæ´¦Öóͷ£ÊÕµ½µÄDHCP±¨ÎÄ£¬£¬£¬Å²ÓÃExtractOptionsº¯Êý´¦Öóͷ£DHCPµÄOption×ֶΣ¬£¬£¬´«È뺯ÊýExtractOptionsµÄ²ÎÊý1£¨v7£©ÎªDHCP±¨ÎÄÖ¸Õ룬£¬£¬²ÎÊý3£¨*(unsigned int *)(v5 + 16)£©¶ÔÓ¦Ö¸ÕëÆ«ÒÆÎ»ÖÃ+16µÄÊý¾Ý£¬£¬£¬¼´Len×ֶΡ£¡£ ¡£¡£¡£ ¡£¡£


welcome-°ÙÀÖ²©


ExtractOptionº¯ÊýÈçÏÂËùʾ¡£¡£ ¡£¡£¡£ ¡£¡£ v6 = (unsigned __int64)&a1[a3 - 1];Ö¸Ïò±¨ÎÄĩβλÖ㻣»£»v10=a1+240;Ö¸Ïò±¨ÎÄÖÐOption½á¹¹¡£¡£ ¡£¡£¡£ ¡£¡£ÔÚforÑ­»·Öд¦Öóͷ£²î±ðÀàÐ͵ÄOption½á¹¹£¬£¬£¬µ±type=43£¨Vendor Specific Information£©£¬£¬£¬´«ÈëÖ¸Õëv10ºÍÖ¸Õëv6×÷Ϊ²ÎÊý£¬£¬£¬Å²ÓÃParseVendorSpecificº¯Êý¾ÙÐд¦Öóͷ£¡£¡£ ¡£¡£¡£ ¡£¡£


welcome-°ÙÀÖ²©


welcome-°ÙÀÖ²©


ParseVendorSpecificº¯ÊýÄÚ²¿Å²ÓÃUncodeOptionº¯Êý¡£¡£ ¡£¡£¡£ ¡£¡£UncodeOptionº¯Êý²ÎÊýa1Ö¸ÏòoptionÆðʼλÖ㬣¬£¬a2Ö¸Ïò±¨ÎĵÄĩβλÖᣡ£ ¡£¡£¡£ ¡£¡£UncodeOptionº¯Êý±£´æÇå¾²Îó²î£¬£¬£¬ÏÂÃæÁ¬ÏµPOCºÍ²¹¶¡±È¶Ô¾ÙÐÐÆÊÎö¡£¡£ ¡£¡£¡£ ¡£¡£


Îó²îÆÊÎö

½á¹¹Ò»¸öDHCP Discovery±¨ÎÄ£¬£¬£¬POCÈçÏÂËùʾ£¬£¬£¬POC°üÀ¨Á½¸övendor_specific ÀàÐ͵ÄOption½á¹¹¡£¡£ ¡£¡£¡£ ¡£¡£vendor_specific1ÊÇÕýµ±µÄOption½á¹¹£¬£¬£¬Lengthȡֵ0x0a¼´ÊÇDataµÄÏÖʵ³¤¶È£¨0x0a£©£¬£¬£¬vendor_specific2ÊDz»Õýµ±µÄOption½á¹¹£¬£¬£¬ Lengthȡֵ0x0f´óÓÚDataµÄÏÖʵ³¤¶È£¨0x0a£©¡£¡£ ¡£¡£¡£ ¡£¡£


welcome-°ÙÀÖ²©


DHCPЧÀÍÆ÷ÊÕµ½DiscoveryÇëÇó±¨ÎÄ£¬£¬£¬¶ÔÊý¾Ý°ü¾ÙÐд¦Öóͷ£¡£¡£ ¡£¡£¡£ ¡£¡£Ê×ÏÈÖ´ÐÐExtractOptions´¦Öóͷ£Options£¬£¬£¬µ±´¦Öóͷ£vendor_specificÀàÐ͵ÄOptionʱ£¬£¬£¬½øÈëµ½ParseVendorSpecific¾ÙÐд¦Öóͷ£¡£¡£ ¡£¡£¡£ ¡£¡£POCÖнṹһ¸öÕýµ±µÄvendor_specific1£¬£¬£¬Ä¿µÄÊÇΪÁËÈÆ¹ý84~85ÐеÄУÑé´úÂ룬£¬£¬Ê¹³ÌÐò˳ËìÖ´Ðе½ParseVendorSpecificº¯Êý¡£¡£ ¡£¡£¡£ ¡£¡£


welcome-°ÙÀÖ²©


ParseVendorSpecificŲÓÃUncodeOptionº¯Êý£¬£¬£¬ÏêϸÈçÏ£º


32~43ÐÐÔÚdo-whileÑ­»·ÖÐÅÌËãOption½á¹¹µÄ LengthÖµÖ®ºÍ£¬£¬£¬ÉúÑĵ½v13£¬£¬£¬×÷Ϊ·ÖÅɶÑÄڴ泤¶È¡£¡£ ¡£¡£¡£ ¡£¡£POCÖаüÀ¨Á½¸övendor_specific½á¹¹£¬£¬£¬Ê×ÏÈ´¦Öóͷ£vendor_specific1£¬£¬£¬ÅÌËãv13£¬£¬£¬¼´vendor_specific1³¤¶Èa£¬£¬£¬²¢ÇÒʹv12Ö¸ÏòÏÂÒ»¸öOption½á¹¹vendor_specific2£¬£¬£¬µ±½øÈë43ÐÐwhileÌõ¼þÅжÏ£¬£¬£¬ÓÉÓÚvendor_specific2³¤¶È²»Õýµ±£¬£¬£¬do-whileÑ­»·¿¢Ê¡£¡£ ¡£¡£¡£ ¡£¡£

48ÐÐŲÓÃHeapAlloc·ÖÅɶÑÄڴ棬£¬£¬·ÖÅɵÄÄÚ´æ¾Þϸv13=a¡£¡£ ¡£¡£¡£ ¡£¡£


51~58ÐÐÔÚforÑ­»·ÖÐÒÀ´Î½«vendor_specific½á¹¹ÖеÄData¿½±´µ½·ÖÅɵĶÑÄÚ´æÖС£¡£ ¡£¡£¡£ ¡£¡£½øÈëµÚÒ»´ÎÑ­»·Ê±£¬£¬£¬v1Ö¸Ïòvendor_specific1£¬£¬£¬v8Ö¸ÏòĩβλÖ㬣¬£¬Öª×ãÌõ¼þv1
welcome-°ÙÀÖ²©

²¹¶¡±È¶Ô

²¹¶¡ºóµÄ°æ±¾Ìí¼ÓÁ˶ÔLength×ֶεÄÓÐÓÃÐÔÅжÏ¡£¡£ ¡£¡£¡£ ¡£¡£


welcome-°ÙÀÖ²©


Çå¾²½¨Òé

ʵʱװÖÃÇå¾²²¹¶¡£¡£ ¡£¡£¡£ ¡£¡£ºhttps://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-0626


welcome-°ÙÀÖ²©