OG¶«·½ÌüADLab£º£º£ºVxWorks¶à¸öÔ¶³Ì·ì϶·ÖÎö

°ä²¼¹¦·ò 2019-08-02
? ·ì϶²¼¾°

VxWorksÊÇÊÀ½çÉÏʹÓÃ×î¿í·ºµÄʵʱ²Ù×÷ϵͳ£¨RTOS£©£¬£¬Óг¬¹ý20ÒŲ́É豸ÕýÔÚʹÓ㬣¬Ô̺¬¹¤Òµ ¡¢µçÁ¦ ¡¢ÄÜÔ´£¬£¬º½¿Õº½ÌìµÈÐÐÒµ¹Ø¼ü»ù´¡ÉèÊ©¡£¡£


½üÈÕ£¬£¬Armis×êÑÐÍŶÓArmis LabsÔÚVxWorksÖз¢ÏÖÁË11¸ö0day·ì϶±»³ÆÎªURGENT/11£¬£¬ÆäÖÐ6¸ö·ì϶ΪÑÏÖØ·ì϶²¢Äܹ»Ô¶³ÌÖ´ÐдúÂ루RCE£©£¬£¬ÆäÓà5¸ö·ì϶Ô̺¬»Ø¾ø·þÎñ ¡¢ÐÅϢй¶ºÍÂß¼­È±µã·ì϶¡£¡£ÕâЩ·ì϶¿ÉÄÜʹ¹¥»÷ÕßÔ¶³ÌÊÕÊÜÉ豸£¬£¬¶øÎÞÐè½»»¥£¬£¬ÉõÖÁÄܹ»Èƹý·À»ðǽµÈÖܱ߰²È«É豸¡£¡£ÕâÐ©ÌØµãʹÕâЩ·ì϶¡°Ò×ÓÚʹÓá±£¬£¬ÕâÒâζ×ÅËüÃÇ¿ÉÓÃÓÚ½«¶ñÒâÈí¼þ´«²¼µ½ÍøÂçÄÚ²¿£¬£¬ÕâÖÖ¹¥»÷ÓµÓкܴóµÄDZÁ¦£¬£¬ÀàËÆÓÚWannaCry¶ñÒâÈí¼þµÄ´«²¼·½Ê½£¬£¬OG¶«·½ÌüADLabÇ¿ÁÒ½¨ÒéÓйØÓû§¾¡¿ì½øÐÐÉ豸°æ±¾Éý¼¶²¢×öºÃÍøÂ簲ȫÉ豸µÄ¹æ¶¨Éý¼¶¹¤×÷¡£¡£

? ·ì϶ӰÏì°æ±¾


URGENT/11·ì϶ӰÏì×Ô6.5°æÒÔÀ´µÄÏÕЩËùÓÐVxWorks°æ±¾£¬£¬²»Ô̺¬ÎªÈÏÖ¤¶øÉè¼ÆµÄ²úÆ·°æ±¾£¬£¬ÀýÈçVxWorks 653ºÍVxWorks Cert Edition¡£¡£


? VxWorks7(SR540ºÍSR610)
? VxWorks6.5~6.9.4
? ʹÓÃIPNetÍøÂçºÍ̸ջµÄVxWorks°æ±¾

OG¶«·½Ìü¡¤(Öйú´ó½)
±í1 ·ì϶ӰÏìÁбí

? ½â¾ö¹æ»®

? ·À»ðǽºÍIDS²úÆ·Ôö³¤¹æ¶¨£¬£¬¼ì²âÒì³£Á÷Á¿¡£¡£
? ʹÓÃ×îзì϶ɨÃ蹤¾ß¼ì²âÄÚ²¿ÊÜ·ì϶ӰÏìµÄÉ豸×ʲú¡£¡£
? ·çºÓ(Wind River)¹«Ë¾ÒѰ䲼Óйذ汾¸üкͲ¹¶¡ÐÅÏ¢¡£¡£
? ÂÞ¿ËΤ¶û(Rockwell) ¡¢Sonicwall ¡¢Ê©ÀÖ(Xerox)µÈ¹«Ë¾ÒѰ䲼¸üаü£¬£¬Çëʵʱ¸üС£¡£

? ·ì϶µÀÀí·ÖÎö

Armis LabsÔÚVxWorksÖй²·¢ÏÖÁË11¸ö0day·ì϶£¬£¬ÆäÖÐ6¸ö·ì϶ΪÑÏÖØ·ì϶²¢Äܹ»Ô¶³ÌÖ´ÐдúÂ루RCE£©£¬£¬ÆäÓà5¸ö·ì϶Ϊ»Ø¾ø·þÎñ£¬£¬ÐÅϢй¶»òÂß¼­È±µã·ì϶¡£¡£¾ßÌåÈçϱíËùʾ£º£º£º

OG¶«·½Ìü¡¤(Öйú´ó½)
±í2 ·ì϶ÃèÊöÁбí


OG¶«·½ÌüADLab°ÎÈ¡ÁËÈý¸ö±ÈÁ¦µäÐ͵ķì϶CVE-2019-12255 ¡¢CVE-2019-12257 ¡¢CVE-2019-12258½øÐзÖÎö¡£¡£ËüÃÇÉæ¼°µ½ÁËIPNetºÍ̸ջ¼°DHCPºÍ̸´¦ÖÃʵÏÖ¡£¡£


¡ø CVE-2019-12255·ì϶·ÖÎö

CVE-2019-12255·ì϶ÊÇIPNetºÍ̸ջÔÚ´¦ÖÃTCP±¨ÎÄurg±ê־ʱµÄÕûÊýÒç³ö·ì϶¡£¡£ÔÚÊÜÓ°Ïì°æ±¾µÄVxWorks TCPºÍ̸ջʵÏÖÖУ¬£¬ÈôÊÇÒ»¸öTCP±¨ÎÄÉèÖÃÁËurg±êÖ¾£¬£¬ÄÇô¸ÃTCP±¨ÎĵÄurgent pointer×ֶλáÔÚiptcp_deliverº¯ÊýÖÐÓÃÓÚ±äÁ¿tcb-> recv.urg_ptrµÄ¸³Öµ¡£¡£ÔÚVxWorks°æ±¾6.8°æ±¾ÖУ¬£¬ÊµÏÖ´úÂëÈçÏÂËùʾ£º£º£º

OG¶«·½Ìü¡¤(Öйú´ó½)
ͼ1 iptcp_deliverÖÐÉèÖÃurg_ptrµÄ´úÂë


ÔÚ¶ûºósocketÖ´ÐÐrecv£¨£©²Ù×÷ʱ£¬£¬»áŲÓú¯Êýiptcp_usr_get_from_recv_queue£¬£¬¸Ãº¯Êý´¦Öñ¨ÎĶÎʱÊ×ÏÈÅжϵ±Ç°TCPÊý¾Ý¶ÎÊÇ·ñÔ̺¬urgent±êÖ¾£¬£¬ÈôÊÇÔ̺¬¸Ã±êÖ¾£¬£¬Ôò²é³­ÊÇ·ñ»á½«µ±Ç°TCP´°¿ÚÖеÄurgent Êý¾Ý¶ÁÈ¡³öÀ´£¨urgentÊý¾Ý²»ÔÊÐíͨ¹ýͨÀýrecv¶ÁÈ¡£¡£©¡£¡£²é³­·½Ê½ÈçÏÂͼËùʾ£º£º£º


OG¶«·½Ìü¡¤(Öйú´ó½)
ͼ2 ²é³­¶ÁÈ¡Êý¾ÝÊÇ·ñ»áÔ̺¬urgent data


ÆäÖУ¬£¬ugent_pointerÊÇÔÚº¯Êýiptcp_deliverÖи³ÖµµÄ£¬£¬lenΪrecvº¯Êý²ÎÊý£¬£¬ÈôÊÇͨ¹ýÍÆËã·¢ÏÖ¶ÁÈ¡len³¤¶ÈµÄÊý¾Ý»á¶ÁÈ¡µ½urgent dataÊý¾Ý£¬£¬ÔòÖØÐ¶Ôlen¸³Öµ£¬£¬ÒÔ±£ÕÏurgent Êý¾Ý²»±»¶ÁÈ¡¡£¡£ÏÂÃæÁ½ÕÅͼչʾÁËÉÏÊö´úÂëµÄ³ÉЧ¡£¡£


OG¶«·½Ìü¡¤(Öйú´ó½)
ͼ3 recvÒªÇóµÄÊý¾ÝÇøÓò£¨ÆðÔ´£º£º£ºURGENT/11¼¼Êõ°×ƤÊ飩

OG¶«·½Ìü¡¤(Öйú´ó½)
ͼ4 ÖØÐÂÐÞ¸ÄlenÖ®ºórecv¶ÁÈ¡µÄÊý¾ÝÇøÓò£¨ÆðÔ´£º£º£ºURGENT/11¼¼Êõ°×ƤÊ飩


ÈôÊǽӹܵ½µÄTCP¶ÎÖеÄurgent_pointer×Ö¶ÎÉèÖÃΪ0£¬£¬Ôòiptcp_usr_get_from_recv_queueͨ¹ýÍÆËãµÃµ½Ð޸ĺóµÄlenΪ-1¡£¡£ÓÉÓÚlenÊÇÎÞ·ûºÅÕûÊý£¬£¬¼´µÈÓÚ0xffffffff¡£¡£Õâµ¼ÖÂrecv£¨£©Å²ÓÃÖÐÉèÖõĶÁÈ¡³¤¶ÈÏÞ¶ÈʧЧ£¬£¬´Ó¶ø¿½±´ËùÓпɶÁÈ¡µÄÊý¾Ýµ½Óû§»º³åÇø£¬£¬Ôì³ÉÒç³ö¡£¡£


·ì϶ÑéÖ¤£º£º£º


¸Ã·ì϶ӰÏìµÄ°æ±¾Ô̺¬VxWorks6.5µ½VxWorks 6.9.3¡£¡£
ƾ¾Ý·ì϶µÀÀí£¬£¬ÎÒÃDZàдÁ˸÷ì϶µÄPOCÑéÖ¤·¨Ê½£¬£¬²¢ÔÚVxWorks6.8°æ±¾µÄϵͳÉϽøÐÐÁËÑéÖ¤¡£¡£Í¨¹ýÖ±½Ó·¢ËÍurgent pointerΪ0µÄÊý¾Ý°ü£¬£¬Ôì³ÉÕ»Òç³öºó¸²¸Çº¯Êý·µ»ØµØÖ·£¬£¬ÈçÏÂͼËùʾ£º£º£º

OG¶«·½Ìü¡¤(Öйú´ó½)
ͼ5 CVE-2019-12255·ì϶ÑéÖ¤

¡ø CVE-2019-12257·ì϶·ÖÎö


´Ë·ì϶ÊÇVxWorksϵͳÉ豸ÄÚÖõÄipdhcpc£¨VxWorksµÄÄÚÖÃDHCP¿Í»§¶Ë£©ÔÚ´¦ÖÃDHCPÏìÓ¦Êý¾Ý°üʱ´¥·¢µÄ¶ÑÒç³ö·ì϶¡£¡£µ±ipdhcpc³¢ÊÔ´ÓDHCP·þÎñÆ÷»ñÈ¡IPµØÖ·Ê±£¬£¬ÓëÖ¸±êÉ豸λÓÚͳһ×ÓÍøÖеĹ¥»÷ÕßÄܹ»Í¨¹ýÌØÊâÉè¼ÆµÄDHCPÏìÓ¦Êý¾Ý°ü»Ø¸´£¬£¬Ê¹µÃVxWorksϵͳÉ豸²úÉú¶ÑÒç³ö£¬£¬´Ó¶øÄܹ»ÔÚVxWorksϵͳÉ豸ÉÏÖ´ÐÐËÁÒâ´úÂë¡£¡£


ipdhcpcÊØ»¤¹ý³ÌÆô¶¯ºó»á½øÈëipdhcpc_daemonº¯Êý½øÐÐÍøÂçÊý¾ÝµÄÑ­»·¼àÌý£¬£¬ipdhcpc_daemonº¯ÊýÖØÒªÁ÷³ÌÓÐÈý²½£¬£¬µÚÒ»²½ÊÇͨ¹ýŲÓÃipdhcpc_if_eventcbº¯Êý¶ÔDHCP¿Í»§¶ËµÄhandle½øÐгõʼ»¯²¢·¢ËÍDHCP¹ã²¥ÒªÇ󣬣¬µÚ¶þ²½ÊÇŲÓÃipcom_recvfrom½Ó¹ÜDHCP·þÎñÆ÷»Ø¸´µÄÏìÓ¦Êý¾Ý°ü£¬£¬µÚÈý²½ÊÇͨ¹ýŲÓÃipdhcpc_replay_input¶Ô½Ó¹Üµ½µÄÏìÓ¦Êý¾Ý°ü½øÐд¦Öᣡ£

OG¶«·½Ìü¡¤(Öйú´ó½)
ͼ6 ipdhcpc_daemonº¯ÊýÁ÷³ÌʾÒâ


µ±Í¨¹ýŲÓÃipdhcpc_if_eventcbº¯Êý¶Ôdhcp¿Í»§¶ËµÄhandle½øÐгõʼ»¯Ê±£¬£¬ipdhcpc_if_eventcbº¯Êý»áŲÓÃipdhcpc_handle_mallocº¯ÊýΪdhcp¿Í»§¶ËµÄhandle·ÖÅä¿Õ¼ä£¬£¬ÔÚipdhcpc_handle_mallocº¯ÊýÖУ¬£¬¸Ãº¯ÊýΪhandle->info.options·ÖÅäÁ˾ÞϸΪipdhcpc.max_message_size-264×ֽڵĿռä¡£¡£


OG¶«·½Ìü¡¤(Öйú´ó½)
ͼ7 ipdhcpc_handle_mallocº¯ÊýÁ÷³ÌʾÒâ


µ±ipdhcpc_daemonµÄÖ÷Ñ­»·ÄÚÖ´ÐÐipcom_recvfrom½Ó¹ÜÏìÓ¦Êý¾Ý°üʱ£º£º£º


´Ë´¦½Ó¹Ü×î¶àΪipdhcpc.max_message_size×Ö½ÚµÄÊý¾Ý°ü£¬£¬ipdhcpc.in_pkt_lenµÄ×î´ó³¤¶ÈΪipdhcpc.max_message_size¡£¡£

OG¶«·½Ìü¡¤(Öйú´ó½)
ͼ8 ipcom_recvfromº¯ÊýŲÓÃʾÒâ


ipdhcpc_daemonº¯Êý½Ó¹ÜºóÊý¾Ýºó£¬£¬»áŲÓÃipdhcpc_reply_inputº¯Êý¶Ô½Ó¹Üµ½µÄdhcpºÍ̸Êý¾Ý½øÐд¦Ö㬣¬ÆäÖÐhandle->priv->in_optlen µÄ³¤¶È»ùÓÚipdhcpc.in_pkt_lenÍÆË㣬£¬handle->priv->in_optlen=ipdhcpc.in_pkt_len-240£¬£¬Ò²¾ÍÊÇ˵handle->priv->in_optlenµÄ×î´óֵΪipdhcpc.max_message_size-240¡£¡£


OG¶«·½Ìü¡¤(Öйú´ó½)
ͼ9 ipdhcpc_reply_inputº¯ÊýŲÓÃʾÒâ


¶øºó£¬£¬ÔÚºóÐøµÄŲÓà ipdhcpc_offer_input£¨»òipdhcpc_ack_input£©£¬£¬ÔÚÕâÁ½¸öº¯ÊýÖлáÖ´ÐÐmemcpy²Ù×÷£º£º£º


OG¶«·½Ìü¡¤(Öйú´ó½)
ͼ10 ipdhcpc_reply_inputÁ÷³ÌʾÒâ


ÔÚÉÏͼÖУ¬£¬handle-> priv-> in_optlenµÄ×î´óÖµ¿ÉËùÒÔipdhcpc.max_message_size - 240£¬£¬Ëü´óÓÚΪhandle-> info.options·ÖÅäµÄ¿Õ¼ä£¬£¬Îªipdhcpc.max_message_size - 264¡£¡£ÔÚvxwroksÖÐipdhcpc.max_message_sizeֵĬÒÔΪ576£¬£¬¹¥»÷ÕßÔÚ¾ÖÓòÍøÖÐͨ¹ý»ú¹Ø³¤¶ÈΪ576µÄ¶ñÒâdhcpÏìÓ¦Êý¾Ý¾ÍÄܹ»Ê¹µÃ±»¹¥»÷É豸ÖеÄvxworksϵͳ²úÉú24×ֽڵĶÑÒç³ö¡£¡£


¡ø CVE-2019-12258·ì϶·ÖÎö


CVE-2019-12255·ì϶ÊÇIPNetºÍ̸ջÔÚ´¦ÖÃTCP±¨ÎÄ·ÖÆ¬Ê±µÄ»Ø¾ø·þÎñ·ì϶¡£¡£ÔÚÊÜÓ°ÏìµÄVxWorksϵͳÖÐIptcp_inputº¯ÊýÓÃÓÚ´¦ÖÃTCP·ÖƬµÄÊý¾Ý°ü£¬£¬ÔÚ½âÎöTCPͷʱ£¬£¬ÊµÏÖ´úÂëÈçÏ£º£º£º

OG¶«·½Ìü¡¤(Öйú´ó½)
ͼ11 Iptcp_inputº¯ÊýʾÒâ


Iptcp_inputº¯Êý»áŲÓÃiptcp_process_options()º¯Êý´¦ÖÃTCPÍ·µÄoptionsÊý¾ÝÓò¡£¡£Iptcp_process_options()º¯ÊýÔÚÅжÏoptionsÊý¾ÝÓòÀàÐÍʱ£¬£¬ÊµÏÖ´úÂëÈçÏ£º£º£º


OG¶«·½Ìü¡¤(Öйú´ó½)
ͼ12 Iptcp_process_optionsº¯ÊýʾÒâ


¸Ãswitchƾ¾ÝoptionsÊý¾ÝÓòµÄÀàÐͽøÐзַ¢£¬£¬Õâ¸öcase·ÖÖ§ÊÇÉèÖÃMSSµÄ£¬£¬ÐÐ80²¢ÅжϸÃÀàÐ͵ÄoptionsÊý¾ÝÓò³¤¶È±ØÐëΪ4£¬£¬ÈôÊDz»µÈÓÚ4£¬£¬¾ÍÅжÏMSS·¸·¨£¬£¬Ö±½ÓÍ˳ö¡£¡£·µ»Øµ½iptcp_inputº¯ÊýÖУ¬£¬ÓÉÓÚ·µ»ØÖµÐ¡ÓÚ0£¬£¬¾Í½øÈëif·ÖÖ§£¬£¬Å²ÓÃiptcp_send_reset()º¯Êý£¬£¬¸Ãº¯ÊýÖ°ÄÜÊÇÖØÖò¢¶Ïµôµ±Ç°TCPÏνÓ¡£¡£ÈôÊǹ¥»÷Õß·¢ËͶñÒâoptionsµÄTCPÊý¾Ý°ü£¬£¬½«µ¼ÖÂÏνӶϿª¡£¡£´Ë·ì϶Äܹ»ÔÊÐí¹¥»÷ÕßÇ¿ÖÆÖØÖÃÏνӵ½ÊÜÓ°ÏìµÄVxWorksÉ豸µÄÈκÎTCP»á»°£¬£¬Ôì³É»Ø¾ø·þÎñ¹¥»÷¡£¡£


²¿ÃÅÊÜ·ì϶ӰÏìÉ豸£º£º£º


? ABB¹«Ë¾¹¤Òµ×Ô¶¯»¯²úÆ·

? ͨÓÃµçÆø¹¤Òµ×Ô¶¯»¯²úÆ·
°¬Ä¬Éú(Emerson)¹«Ë¾¹¤Òµ½ÚÖÆÉ豸
ÈÕÁ¢(HITACHI)¹«Ë¾Ò½ÁÆÉ豸
°Ùͨ(Belden)¹¤ÒµÉ豸
µÂ¶û¸ñ(Dr?ger)¹«Ë¾Ò½ÁÆÉ豸
Ê©Ä͵Â(Schneider)¹«Ë¾PLC
ÈýÁâ(Mitsubishi)¹«Ë¾¹¤Òµ½ÚÖÆÆ÷
·ÉÀûÆÖ(Philips)¹«Ë¾Ò½ÁÆÉ豸
¿â¿¨(KUKA)¹«Ë¾¹¤Òµ»úеÈË
Ê·Ìձȶû(St?ubli)¹«Ë¾¹¤Òµ»úеÈË
°²´¨(Yaskawa)µç»ú¹¤Òµ»úеÈË


³ýÁËÒÔÉÏÉ豸£¬£¬»¹ÓдóÁ¿Ê¹ÓÃVxWorksµÄÉ豸£¬£¬¾ßÌåÁбíÇë²ÎÕղο¼ÎļþÁ´½Ó1ºÍ2¡£¡£


²Î¿¼Îļþ£º£º£º


1.https://www.windriver.com/customers/
2.https://en.wikipedia.org/wiki/VxWorks#Notable_uses
3.https://armis.com/urgent11/
4.https://rockwellautomation.custhelp.com/app/answers/detail/a_id/1088561
5.https://www.sonicwall.com/support/product-notification/?sol_id=190717234810906
6.https://security.business.xerox.com/en-us/

7.https://www.windriver.com/security/announcements/tcp-ip-network-stack-ipnet-urgent11/