8827Ì«Ñô¼¯ÍÅADLab£ºVxWorks¶à¸öÔ¶³Ì·ì϶·ÖÎö
°ä²¼¹¦·ò 2019-08-02VxWorksÊÇÊÀ½çÉÏʹÓÃ×î¿í·ºµÄʵʱ²Ù×÷ϵͳ£¨RTOS£©£¬£¬£¬£¬£¬Óг¬¹ý20ÒŲ́É豸ÔÚʹÓ㬣¬£¬£¬£¬Ô̺¬¹¤Òµ¡¢µçÁ¦¡¢ÄÜÔ´£¬£¬£¬£¬£¬º½¿Õº½ÌìµÈÐÐÒµ¹Ø¼ü»ù´¡ÉèÊ©¡£¡£¡£¡£¡£¡£¡£
? ·ì϶ӰÏì°æ±¾
URGENT/11·ì϶ӰÏì×Ô6.5°æÒÔÀ´µÄÏÕЩËùÓÐVxWorks°æ±¾£¬£¬£¬£¬£¬²»Ô̺¬ÎªÈÏÖ¤¶øÉè¼ÆµÄ²úÆ·°æ±¾£¬£¬£¬£¬£¬ÀýÈçVxWorks 653ºÍVxWorks Cert Edition¡£¡£¡£¡£¡£¡£¡£
? VxWorks6.5~6.9.4
? ʹÓÃIPNetÍøÂçºÍ̸ջµÄVxWorks°æ±¾
? ½â¾ö¹æ»®
? ·À»ðǽºÍIDS²úÆ·Ôö³¤¹æ¶¨£¬£¬£¬£¬£¬¼ì²âÒì³£Á÷Á¿¡£¡£¡£¡£¡£¡£¡£
? ʹÓÃ×îзì϶ɨÃ蹤¾ß¼ì²âÄÚ²¿ÊÜ·ì϶ӰÏìµÄÉ豸×ʲú¡£¡£¡£¡£¡£¡£¡£
? ·çºÓ(Wind River)¹«Ë¾ÒѰ䲼Óйذ汾¸üкͲ¹¶¡ÐÅÏ¢¡£¡£¡£¡£¡£¡£¡£
? ÂÞ¿ËΤ¶û(Rockwell)¡¢Sonicwall¡¢Ê©ÀÖ(Xerox)µÈ¹«Ë¾ÒѰ䲼¸üаü£¬£¬£¬£¬£¬Çëʵʱ¸üС£¡£¡£¡£¡£¡£¡£
? ·ì϶µÀÀí·ÖÎö
Armis LabsÔÚVxWorksÖй²·¢ÏÖÁË11¸ö0day·ì϶£¬£¬£¬£¬£¬ÆäÖÐ6¸ö·ì϶ΪÑϳÁ·ì϶²¢Äܹ»Ô¶³ÌÖ´ÐдúÂ루RCE£©£¬£¬£¬£¬£¬ÆäÓà5¸ö·ì϶Ϊ»Ø¾ø·þÎñ£¬£¬£¬£¬£¬ÐÅϢй¶»òÂ߼ȱµã·ì϶¡£¡£¡£¡£¡£¡£¡£¾ßÌåÈçϱíËùʾ£º
8827Ì«Ñô¼¯ÍÅ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°æ±¾ÖУ¬£¬£¬£¬£¬ÊµÏÖ´úÂëÈçÏÂËùʾ£º
ÔÚ¶ûºósocketÖ´ÐÐrecv£¨£©²Ù×÷ʱ£¬£¬£¬£¬£¬»áŲÓú¯Êýiptcp_usr_get_from_recv_queue£¬£¬£¬£¬£¬¸Ãº¯Êý´¦Öñ¨ÎĶÎʱÊ×ÏÈÅжϵ±Ç°TCPÊý¾Ý¶ÎÊÇ·ñÔ̺¬urgent±êÖ¾£¬£¬£¬£¬£¬ÈôÊÇÔ̺¬¸Ã±êÖ¾£¬£¬£¬£¬£¬Ôò²é³ÊÇ·ñ»á½«µ±Ç°TCP´°¿ÚÖеÄurgent Êý¾Ý¶ÁÈ¡³öÀ´£¨urgentÊý¾Ý²»ÔÊÐíͨ¹ýͨÀýrecv¶ÁÈ¡£¡£¡£¡£¡£¡£¡£©¡£¡£¡£¡£¡£¡£¡£²é³·½Ê½ÈçÏÂͼËùʾ£º
ÆäÖУ¬£¬£¬£¬£¬ugent_pointerÊÇÔÚº¯Êýiptcp_deliverÖи³ÖµµÄ£¬£¬£¬£¬£¬lenΪrecvº¯Êý²ÎÊý£¬£¬£¬£¬£¬ÈôÊÇͨ¹ýÍÆËã·¢ÏÖ¶ÁÈ¡len³¤¶ÈµÄÊý¾Ý»á¶ÁÈ¡µ½urgent dataÊý¾Ý£¬£¬£¬£¬£¬Ôò³ÁжÔlen¸³Öµ£¬£¬£¬£¬£¬ÒÔ±£ÕÏurgent Êý¾Ý²»±»¶ÁÈ¡¡£¡£¡£¡£¡£¡£¡£ÏÂÃæÁ½ÕÅͼչʾÁËÉÏÊö´úÂëµÄ³ÉЧ¡£¡£¡£¡£¡£¡£¡£
ÈôÊǽӹܵ½µÄTCP¶ÎÖеÄurgent_pointer×Ö¶ÎÉèÖÃΪ0£¬£¬£¬£¬£¬Ôòiptcp_usr_get_from_recv_queueͨ¹ýÍÆËãµÃµ½½¨¸ÄºóµÄlenΪ-1¡£¡£¡£¡£¡£¡£¡£ÓÉÓÚlenÊÇÎÞ·ûºÅÕûÊý£¬£¬£¬£¬£¬¼´µÅ×Ú0xffffffff¡£¡£¡£¡£¡£¡£¡£Õâµ¼ÖÂrecv£¨£©Å²ÓÃÖÐÉèÖõĶÁÈ¡³¤¶ÈÏÞ¶ÈʧЧ£¬£¬£¬£¬£¬´Ó¶ø¿½±´ËùÓпɶÁÈ¡µÄÊý¾Ýµ½Óû§»º³åÇø£¬£¬£¬£¬£¬Ôì³ÉÒç³ö¡£¡£¡£¡£¡£¡£¡£
·ì϶ÑéÖ¤£º
ƾ¾Ý·ì϶µÀÀí£¬£¬£¬£¬£¬ÎÒÃDZàдÁ˸÷ì϶µÄPOCÑéÖ¤·¨Ê½£¬£¬£¬£¬£¬²¢ÔÚVxWorks6.8°æ±¾µÄϵͳÉϽøÐÐÁËÑéÖ¤¡£¡£¡£¡£¡£¡£¡£Í¨¹ýÖ±½Ó·¢ËÍurgent pointerΪ0µÄÊý¾Ý°ü£¬£¬£¬£¬£¬Ôì³ÉÕ»Òç³öºó¸²¸Çº¯Êý·µ»ØµØÖ·£¬£¬£¬£¬£¬ÈçÏÂͼËùʾ£º
¡ø CVE-2019-12257·ì϶·ÖÎö
´Ë·ì϶ÊÇVxWorksϵͳÉ豸ÄÚÖõÄipdhcpc£¨VxWorksµÄÄÚÖÃDHCP¿Í»§¶Ë£©ÔÚ´¦ÖÃDHCPÏìÓ¦Êý¾Ý°üʱ´¥·¢µÄ¶ÑÒç¶Âí½Å¡£¡£¡£¡£¡£¡£¡£µ±ipdhcpc³¢ÊÔ´ÓDHCP·þÎñÆ÷»ñÈ¡IPµØÖ·Ê±£¬£¬£¬£¬£¬ÓëÖ¸±êÉ豸λÓÚͳһ×ÓÍøÖеĹ¥»÷ÕßÄܹ»Í¨¹ýÌØÊâÉè¼ÆµÄDHCPÏìÓ¦Êý¾Ý°ü»Ø¸´£¬£¬£¬£¬£¬Ê¹µÃVxWorksϵͳÉ豸²úÉú¶ÑÒç³ö£¬£¬£¬£¬£¬´Ó¶øÄܹ»ÔÚVxWorksϵͳÉ豸ÉÏÖ´ÐÐËÁÒâ´úÂë¡£¡£¡£¡£¡£¡£¡£
µ±Í¨¹ýŲÓÃipdhcpc_if_eventcbº¯Êý¶Ôdhcp¿Í»§¶ËµÄhandle½øÐгõʼ»¯Ê±£¬£¬£¬£¬£¬ipdhcpc_if_eventcbº¯Êý»áŲÓÃipdhcpc_handle_mallocº¯ÊýΪdhcp¿Í»§¶ËµÄhandle·ÖÅä¿Õ¼ä£¬£¬£¬£¬£¬ÔÚipdhcpc_handle_mallocº¯ÊýÖУ¬£¬£¬£¬£¬¸Ãº¯ÊýΪhandle->info.options·ÖÅäÁË´óÓ×Ϊipdhcpc.max_message_size-264×ֽڵĿռ䡣¡£¡£¡£¡£¡£¡£
µ±ipdhcpc_daemonµÄÖ÷Ñ»·ÄÚÖ´ÐÐ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¡£¡£¡£¡£¡£¡£¡£
¶øºó£¬£¬£¬£¬£¬ÔÚºóÐøµÄŲÓà ipdhcpc_offer_input£¨»òipdhcpc_ack_input£©£¬£¬£¬£¬£¬ÔÚÕâÁ½¸öº¯ÊýÖлáÖ´ÐÐmemcpy²Ù×÷£º
ÔÚÉÏͼÖУ¬£¬£¬£¬£¬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·ì϶·ÖÎö
Iptcp_inputº¯Êý»áŲÓÃiptcp_process_options()º¯Êý´¦ÖÃTCPÍ·µÄoptionsÊý¾ÝÓò¡£¡£¡£¡£¡£¡£¡£Iptcp_process_options()º¯ÊýÔÚÅжÏoptionsÊý¾ÝÓòÀàÐÍʱ£¬£¬£¬£¬£¬ÊµÏÖ´úÂëÈçÏ£º

¸Ãswitchƾ¾ÝoptionsÊý¾ÝÓòµÄÀàÐͽøÐзַ¢£¬£¬£¬£¬£¬Õâ¸öcase·ÖÖ§ÊÇÉèÖÃMSSµÄ£¬£¬£¬£¬£¬ÐÐ80²¢ÅжϸÃÀàÐ͵ÄoptionsÊý¾ÝÓò³¤¶È±ØÐëΪ4£¬£¬£¬£¬£¬ÈôÊDz»µÅ×Ú4£¬£¬£¬£¬£¬¾ÍÅжÏMSS·¸·¨£¬£¬£¬£¬£¬Ö±½ÓÍ˳ö¡£¡£¡£¡£¡£¡£¡£·µ»Øµ½iptcp_inputº¯ÊýÖУ¬£¬£¬£¬£¬ÓÉÓÚ·µ»ØÖµÓ×ÓÚ0£¬£¬£¬£¬£¬¾Í½øÈëif·ÖÖ§£¬£¬£¬£¬£¬Å²ÓÃiptcp_send_reset()º¯Êý£¬£¬£¬£¬£¬¸Ãº¯ÊýÖ°ÄÜÊdzÁÖò¢¶Ïµôµ±Ç°TCPÏνӡ£¡£¡£¡£¡£¡£¡£ÈôÊǹ¥»÷Õß·¢ËͶñÒâoptionsµÄTCPÊý¾Ý°ü£¬£¬£¬£¬£¬½«µ¼ÖÂÏνӶϿª¡£¡£¡£¡£¡£¡£¡£´Ë·ì϶Äܹ»ÔÊÐí¹¥»÷ÕßÇ¿Ôì³ÁÖÃÏνӵ½ÊÜÓ°ÏìµÄVxWorksÉ豸µÄÈκÎTCP»á»°£¬£¬£¬£¬£¬Ôì³É»Ø¾ø·þÎñ¹¥»÷¡£¡£¡£¡£¡£¡£¡£
? ABB¹«Ë¾¹¤Òµ×Ô¶¯»¯²úÆ·
? ͨÓÃµçÆø¹¤Òµ×Ô¶¯»¯²úÆ·? °¬Ä¬Éú(Emerson)¹«Ë¾¹¤Òµ½ÚÔìÉ豸
? ÈÕÁ¢(HITACHI)¹«Ë¾Ò½ÁÆÉ豸
? °Ùͨ(Belden)¹¤ÒµÉ豸
? µÂ¶û¸ñ(Dr?ger)¹«Ë¾Ò½ÁÆÉ豸
? Ê©Ä͵Â(Schneider)¹«Ë¾PLC
? ÈýÁâ(Mitsubishi)¹«Ë¾¹¤Òµ½ÚÔìÆ÷
? ·ÉÀûÆÖ(Philips)¹«Ë¾Ò½ÁÆÉ豸
? ¿â¿¨(KUKA)¹«Ë¾¹¤Òµ»úеÈË
? Ê·Ìձȶû(St?ubli)¹«Ë¾¹¤Òµ»úеÈË
? °²´¨(Yaskawa)µç»ú¹¤Òµ»úеÈË
³ýÁËÒÔÉÏÉ豸£¬£¬£¬£¬£¬»¹ÓдóÁ¿Ê¹ÓÃVxWorksµÄÉ豸£¬£¬£¬£¬£¬¾ßÌåÁбíÇë²ÎÕղο¼ÎļþÁ´½Ó1ºÍ2¡£¡£¡£¡£¡£¡£¡£
²Î¿¼Îļþ£º
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/


¾©¹«Íø°²±¸11010802024551ºÅ