Ô­´´ | Ripple20£ºTreck TCP/IPºÍ̸ջ·ì϶·ÖÎöÓëÑéÖ¤

°ä²¼¹¦·ò 2020-06-30

Ò»¡¢Ã½½é


¹ú±í°²È«×êÑÐÈËÔ±ÔÚÓÉTreck¿ª·¢µÄTCP/IPºÍ̸ջÖз¢ÏÖÁ˶à¸ö·ì϶£¬£¬£¬ £¬£¬£¬£¬£¬ÕâһϵÁзì϶ͳ³ÆÎªRipple20 ¡£¡£ ¡£¡£¡£¡£¡£¡£ÕâЩ·ì϶¿í·º´æÔÚÓÚǶÈëʽºÍÎïÁªÍøÉ豸ÖУ¬£¬£¬ £¬£¬£¬£¬£¬Ó°ÏìÁ˶à¸öÐÐÒµÁìÓò£¨Ô̺¬Ò½ÁÆ¡¢ÔËÊä¡¢ÄÜÔ´¡¢µçÐÅ¡¢¹¤Òµ½ÚÔì¡¢ÁãÊÛºÍóÒ׵ȣ©£¬£¬£¬ £¬£¬£¬£¬£¬Éæ¼°Á˶à¶à¹©¸øÉÌ£¨Ô̺¬HP¡¢Schneider Electric¡¢Intel¡¢Rockwell Automation¡¢Caterpillar¡¢BaxterµÈ£© ¡£¡£ ¡£¡£¡£¡£¡£¡£


ÕâЩ·ì϶ԴÓÚRipple20µÄ¶à¸öºÍ̸£¨Ô̺¬IPv4¡¢ICMPv4¡¢IPv6¡¢IPv6OverIPv4¡¢TCP¡¢UDP¡¢ARP¡¢DHCP¡¢DNS»òÒÔÌ«ÍøÁ´Â·²ã£©ÔÚ´¦ÖÃÍøÂ籨ÎÄ·¢ËÍʱ´æÔÚȱµã£¬£¬£¬ £¬£¬£¬£¬£¬ÆäÖÐÔ̺¬ËĸöÑϳÁ·ì϶£¬£¬£¬ £¬£¬£¬£¬£¬ËüÃǵÄCVE±àºÅ±ðÀëΪCVE-2020-11896¡¢CVE-2020-11898¡¢CVE-2020-11910¡¢CVE-2020-11911 ¡£¡£ ¡£¡£¡£¡£¡£¡£CVE-2020-11896£¨CVSSÆÀ·Ö10£©¿Éµ¼ÖÂÔ¶³ÌÖ´ÐдúÂ룬£¬£¬ £¬£¬£¬£¬£¬CVE-2020-11897£¨CVSSÆÀ·Ö10£©¿Éµ¼ÖÂÔ½½çдÈ룬£¬£¬ £¬£¬£¬£¬£¬CVE-2020-11901£¨CVSSÆÀ·Ö9£©¿Éµ¼ÖÂÔ¶³ÌÖ´ÐдúÂ룬£¬£¬ £¬£¬£¬£¬£¬CVE-2020-11898£¨CVSSÆÀ·Ö9.1£©¿Éµ¼ÖÂй¼ûô¸ÐÐÅÏ¢ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÆäËü15¸öRipple20·ì϶µÄÑϳÁˮƽ¸÷±ð£¬£¬£¬ £¬£¬£¬£¬£¬CVSSÆÀ·Ö±ðÀë´Ó3.1µ½8.2 ¡£¡£ ¡£¡£¡£¡£¡£¡£


ÓÉÓÚÎïÁªÍøÉ豸¹©¸øÁ´µÄ¸öÐÔ£¬£¬£¬ £¬£¬£¬£¬£¬·ì϶ӰÏìµÄÉ豸¶à¶à£¬£¬£¬ £¬£¬£¬£¬£¬Ó°ÏìÁìÓò¹ãÇÒ³ÖÐø¹¦·ò³¤£¬£¬£¬ £¬£¬£¬£¬£¬·ì϶½¨¸´µÄÖ´ÐнÏÄÑÌâ ¡£¡£ ¡£¡£¡£¡£¡£¡£Òò¶ø£¬£¬£¬ £¬£¬£¬£¬£¬8827Ì«Ñô¼¯ÍÅADLabµÚÒ»¹¦·ò¶ÔÓйطì϶½øÐÐÁË·ÖÎö²¢Ìá³öÁË·À±¸½¨Òé ¡£¡£ ¡£¡£¡£¡£¡£¡£


¶þ¡¢ºÍ̸ջ¼ì²â


ÓÉÓÚѡȡTreckºÍ̸ջµÄ³§¼Ò½Ï¶à£¬£¬£¬ £¬£¬£¬£¬£¬ÓÐЩ³§¼ÒÊÇÓ²¼þIPºËµÄ·½Ê½ÒýÓÃÁËTreckºÍ̸ջ ¡£¡£ ¡£¡£¡£¡£¡£¡£µ¥´¿Í¨¹ýÉè±¸Ö¸ÎÆÀ´¼ø±ð·ì϶ÊDz»¼°µÄ£¬£¬£¬ £¬£¬£¬£¬£¬ÈôºÎ¼ì²âÖ¸±êÉ豸ÊÇ·ñΪTreckºÍ̸ջ³ÉΪ×ʲúÅŲéµÄ¹Ø¼ü£¬£¬£¬ £¬£¬£¬£¬£¬Îª´Ë8827Ì«Ñô¼¯ÍÅADLab°²È«×êÑÐÔ±¶ÔTreckºÍ̸ջ½øÐÐÁËÉî¿Ì·ÖÎö£¬£¬£¬ £¬£¬£¬£¬£¬²¢¹«¿ªÁËTreckºÍÌ¸Õ»Ö¸ÎÆ¼ì²â²½Öè·¢ÏÖ·ì϶ ¡£¡£ ¡£¡£¡£¡£¡£¡£


TreckºÍ̸ջ×Ô½ç˵ÁËÀàÐÍΪ165(0xa5)µÄICMP°ü£¬£¬£¬ £¬£¬£¬£¬£¬²¢Ò»µ©ÊÕµ½165µÄICMP°ü»á»Ø¸´ÀàÐÍΪ166µÄICMP°üÏìÓ¦ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


Ê×ÏÈ£¬£¬£¬ £¬£¬£¬£¬£¬ÏòÖ¸±ê·¢ËÍ ICMPÒªÇó°ü£¬£¬£¬ £¬£¬£¬£¬£¬ÆäÖÐtype=0xa5£¬£¬£¬ £¬£¬£¬£¬£¬code=0 ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


¶øºó£¬£¬£¬ £¬£¬£¬£¬£¬½Ó¹ÜÖ¸±ê·µ»ØµÄicmpÏìÓ¦°üÊý¾Ý£¬£¬£¬ £¬£¬£¬£¬£¬ÆäÖÐtype =0xa6,code =0£¬£¬£¬ £¬£¬£¬£¬£¬ICMP±¨ÎĵÚ9×Ö½ÚºóµÄÁù¸ö×Ö½ÚΪ0x01,0x51,0x35,0x28,0x57,0x32(´ó¶Ë)»ò0x51,0x01,0x28,0x35,0x32,0x57(Ó×¶Ë£© ¡£¡£ ¡£¡£¡£¡£¡£¡£


Âú×ãÉÏÊöµÄǰÌᣬ£¬£¬ £¬£¬£¬£¬£¬ÔòÅúÖõÖ¸±êÉ豸Ϊtreck ºÍ̸ջ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


Èý¡¢·À±¸½¨Òé


1¡¢ÀûÓøüÐÂ


ʵʱ¸üе½Treck TCP/IPºÍ̸ջÈí¼þµÄ×îв»±ä°æ±¾£¨6.0.1.67»ò¸ü¸ß°æ±¾£© ¡£¡£ ¡£¡£¡£¡£¡£¡£


2. ×èÖ¹Òì³£IPÁ÷Á¿


Äܹ»Í¨¹ýÉî¶ÈÊý¾Ý°ü²é³­À´×èÖ¹ÍøÂç¹¥»÷£¬£¬£¬ £¬£¬£¬£¬£¬ÒÔÏÂÊÇÄܹ»Êʵ±ÀûÓÃÓÚÍøÂç»·¾³ÖеĿÉÄÜ»º½â´ëÊ©£¬£¬£¬ £¬£¬£¬£¬£¬¹ýÂËÑ¡ÏîÔ̺¬£º


¡ñ ÈôÊÇÍøÂç»·¾³²»Ö§³Ö£¬£¬£¬ £¬£¬£¬£¬£¬Ôò¹æ·¶»¯»ò»Ø¾øIP·Ô쬵ÄÊý¾Ý°ü£¨IP·Ô쬣©

¡ñ ÈôÊDz»±ØÒª£¬£¬£¬ £¬£¬£¬£¬£¬Çë½ûÓûò×èÖ¹IPËí·£¨IPv6-in-IPv4»òIP-in-IPËí·£©

¡ñ ×èÖ¹IPԴ·ÓɺÍËùÓв»ÔÞ³ÉʹÓÃIPv6µÄÖ°ÄÜ£¬£¬£¬ £¬£¬£¬£¬£¬ÀýÈç·ÓɱêÍ·

¡ñ Ç¿ÔìÖ´ÐÐTCP²é³­²¢»Ø¾øÌåʽÃýÎóµÄTCPÊý¾Ý°ü

¡ñ ×èֹδʹÓõÄICMP½ÚÔìÐÂÎÅ£¬£¬£¬ £¬£¬£¬£¬£¬ÀýÈçMTU¸üк͵ØÖ·ÑÚÂë¸üÐÂ

¡ñ ͨ¹ý°²È«µÄµÝ¹é·þÎñÆ÷»òÀûÓòã·À»ðǽ¹æ·¶DNS

¡ñ È·±£ÍøÂç»·¾³ÖÐʹÓõÄÊÇ¿¿µÃסµÄOSIµÚ2²ãÉ豸£¨ÒÔÌ«Íø£©

¡ñ ͨ¹ýDHCPÕìÌýµÈÖ°ÄÜÌṩDHCP / DHCPv6°²È«ÐÔ

¡ñ ÈôÊÇδÔÚ»¥»»»ù´¡¼Ü¹¹ÖÐʹÓ㬣¬£¬ £¬£¬£¬£¬£¬Ôò½ûÓûò×èÖ¹IPv6¶à²¥ ¡£¡£ ¡£¡£¡£¡£¡£¡£


ËÄ¡¢ÓйظÅÏë½éÉÜ


1¡¢IP·Ôì¬


IP·Ôì¬Ê¹µÃÔÚÍøÂçÖз¢ËÍ´óµÄIP°ü³ÉΪ¿ÉÄÜ£¬£¬£¬ £¬£¬£¬£¬£¬¼´±ãÆä´óÓ×´óÓÚÍøÂçÌØ¶¨Á´Â·ÖÐÔÊÐíµÄ×î´óÖµ ¡£¡£ ¡£¡£¡£¡£¡£¡£IP·Ô쬼¼ÊõÊÇÒ»ÖÖ½«Êý¾Ý°ü·Ö³É¼¸¸ö½ÏÓ׵IJ¿ÃÅÒÔÖ§³Öͨ¹ýÕâЩÁ´Â·ºÍÍøÂç´«ÊäµÄ¼¼Êõ ¡£¡£ ¡£¡£¡£¡£¡£¡£¸ÃºÍ̸֧³ÖÔÚ·¢ËͶ˽øÐзÔ쬣¬£¬£¬ £¬£¬£¬£¬£¬¶øºóÔڽӹܶ˶ԷÔ쬳ÁÐÂ×éºÏ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÕâÔÊÐí·ÖÆçµÄ°üÔÚÍøÂçÖÐÁãÉ¢µØ´«Ê䣬£¬£¬ £¬£¬£¬£¬£¬²¢ÔÚÁíÒ»²àÕýÈ·µØ³ÁÐÂ×é×° ¡£¡£ ¡£¡£¡£¡£¡£¡£


·ÖÆçµÄ°üʹÓÃIPÍ·Öеıêʶ×ֶΣ¨Identification£©½øÐзÖ×é ¡£¡£ ¡£¡£¡£¡£¡£¡£´Ë±êʶ×Ö¶ÎÃèÊö·Ôì¬ÊôÓÚÄĸö°ü ¡£¡£ ¡£¡£¡£¡£¡£¡£Í³Ò»¸ö°üµÄ¶à¸ö·Ô쬵ÄIdentificationÊÇÒ»ÑùµÄ ¡£¡£ ¡£¡£¡£¡£¡£¡£IPv4ͨ¹ýFlags¼°Fragment Offset×ֶζԷÔ쬽øÐÐÖÎÀí£¬£¬£¬ £¬£¬£¬£¬£¬FlagsÓÉR¡¢DF¡¢MFÈý²¿ÃÅ×é³É£º


¡ñ R£¨Reserve bit£©±£ÁôδÓÃ

¡ñ DF (Don't Fragment) DF =1£º²»ÈÝ·Ôì¬ , DF =0£ºÔÊÐí·Ôì¬

¡ñ MF (More Fragment) MF =1£º·Ç×îºóһƬ, MF =0£º×îºóһƬ(»òδ·Ôì¬)


Fragment Offset(13λ)£ºÒ»¸öIP·Ö×é·Ô쬷â×°Ô­IP·Ö×éÊý¾ÝµÄÏà¶ÔÆ«ÒÆÁ¿, Æ¬Æ«ÒÆ×Ö¶ÎÒÔ8×Ö½ÚΪµ¥Ôª ¡£¡£ ¡£¡£¡£¡£¡£¡£IP°ü½á¹¹ÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


2¡¢IPËí·¼¼Êõ


IPËí·ÔÊÐíÁ½¸ö¶ÀÁ¢ÍøÂçÖ®¼äµÄÐé¹¹µãµ½µãÁ´Â· ¡£¡£ ¡£¡£¡£¡£¡£¡£ËüÊÇͨ¹ý½«°ü£¨¿ÉËùÒÔIP°ü£©·â×°ÔÚÁíÒ»¸ö°üÖÐÀ´ÊµÏֵ쬣¬£¬ £¬£¬£¬£¬£¬Ê¹µÃÄÚ²¿°üÓµÓÐÓë±í²¿°ü·ÖÆçµÄÔ´µØÖ·ºÍÖ¸±êµØÖ· ¡£¡£ ¡£¡£¡£¡£¡£¡£±í²¿°üµÄÔ´µØÖ·ºÍÖ¸±êµØÖ·ÊÇËí·¶Ëµã£¬£¬£¬ £¬£¬£¬£¬£¬ÄÚ²¿°üÖеĵØÖ·ÓÃÓÚËí·Á½¶ËµÄÍøÂç·ÓÉ ¡£¡£ ¡£¡£¡£¡£¡£¡£Ëí·Èë¿ÚµãÊǽӹÜӦͨ¹ýËí·ת·¢µÄIPÊý¾Ý°üµÄ½Úµã ¡£¡£ ¡£¡£¡£¡£¡£¡£Ëü½«´ËÊý¾Ý°ü·â×°ÔÚ±í²¿IPÊý¾Ý°üÖÐ ¡£¡£ ¡£¡£¡£¡£¡£¡£µ±Êý¾Ý°ü´ïµ½Ëí·³ö¿Úµãʱ£¬£¬£¬ £¬£¬£¬£¬£¬Ëü±»½â·â×°²¢×ª·¢£¬£¬£¬ £¬£¬£¬£¬£¬¾ÍÈçͬËüÊÇÔÚÖ¸±êÍøÂçÖз¢Ë͵ÄͨÀýÊý¾Ý°üÒ»Ñù ¡£¡£ ¡£¡£¡£¡£¡£¡£IP-in-IP°üÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


IPËí·¼¼ÊõÖØÒªÀûÓÃÔÚÐ鹹רÓÃÍø£¨VPN£©¼¼ÊõÖÐ ¡£¡£ ¡£¡£¡£¡£¡£¡£Ä¿Ç°Óм¸ÖÖËí·ºÍ̸£¬£¬£¬ £¬£¬£¬£¬£¬ÆäÖÐ×îµ¥Ò»ºÍ×î¹ÅÀϵÄÊÇIP-in-IP£¨IPºÍ̸±àºÅ4£© ¡£¡£ ¡£¡£¡£¡£¡£¡£IP-in-IPÊÇÒ»ÖÖIPËí·ºÍ̸£¬£¬£¬ £¬£¬£¬£¬£¬ÆäÖÐÒ»¸öIP°üͨ¹ýÔö³¤Ò»¸ö±í²¿IP±¨Í·£¨ÆäÔ´µØÖ·ºÍÖ¸±êµØÖ·±ðÀëµÅ×ÚËí·µÄÈë¿ÚµãºÍ³ö¿Úµã£©·â×°ÔÚÁíÒ»¸öIP°üÖÐ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÄÚ²¿Êý¾Ý°üδ±»Åú¸Ä£¬£¬£¬ £¬£¬£¬£¬£¬±í²¿IPÍ·´ÓÄÚ²¿IPÍ·¸´ÔìһЩ×Ö¶Î ¡£¡£ ¡£¡£¡£¡£¡£¡£±í²¿±¨Í·µÄIPºÍ̸ºÅΪ4 ¡£¡£ ¡£¡£¡£¡£¡£¡£IP-in-IP±¨ÎÄʾÀýÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


Îå¡¢TreckºÍ̸ջ


1¡¢ºÍ̸ջ¸ÅÊö


TreckºÍ̸ջͨ¹ýtsPacket½á¹¹À´ÃèÊö°ü½á¹¹£¬£¬£¬ £¬£¬£¬£¬£¬Í¨¹ýtsUserPacket½á¹¹Ö§³ÖÊý¾Ý°ü·Ôì¬ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÕâÁ½¸ö½á¹¹ÌåÔÚtreck/include/trsocket.hÎļþÖнç˵ ¡£¡£ ¡£¡£¡£¡£¡£¡£Treck TCP/IPºÍ̸ջÖеİüÊý¾ÝÓÉtsPacketµÄ½á¹¹°µÊ¾ ¡£¡£ ¡£¡£¡£¡£¡£¡£Ã¿¸ö°ü¶¼ÓëÒ»¸öÊý¾Ý»º³åÇøÓйØÁª£¬£¬£¬ £¬£¬£¬£¬£¬¸ÃÊý¾Ý»º³åÇø±£Áô´Ó½Ó¿ÚÇý¶¯·¨Ê½´ïµ½µÄԭʼÊý¾Ý ¡£¡£ ¡£¡£¡£¡£¡£¡£tsPacket½á¹¹»¹±£ÁôÁíÒ»¸ö³ÆÎªttUserPacketµÄ³ÁÒª½á¹¹£¬£¬£¬ £¬£¬£¬£¬£¬ÒÔ¼°Ö¸ÏòtsSharedData½á¹¹µÄÖ¸Õ룬£¬£¬ £¬£¬£¬£¬£¬¸Ã½á¹¹Ô̺¬ÍøÂçºÍ̸ջ´¦ÖÃÊý¾Ý°üʱËùÐèµÄÐÅÏ¢£¨Ö¸ÏòÌ×½Ó×ֽṹ¡¢src/dstµØÖ·»ò¶Ë¿ÚµÈµÄÖ¸Õ룩 ¡£¡£ ¡£¡£¡£¡£¡£¡£½ç˵ÈçÏ£º


struct tsPacket {

ttUserPacket pktUserStruct;

ttSharedDataPtr pktSharedDataPtr;

struct tsPacket * pktChainNextPtr;

struct tsDeviceEntry * pktDeviceEntryPtr;

union anon_union_for_pktPtrUnion pktPtrUnion;

tt32Bit pktTcpXmitTime;

tt16Bit pktUserFlags;

tt16Bit pktFlags;

tt16Bit pktFlags2;

tt16Bit pktMhomeIndex;

tt8Bit pktTunnelCount;

tt8Bit pktIpHdrLen;

tt8Bit pktNetworkLayer;

tt8Bit pktFiller[1];

};


ÕâÊÇÔ̺¬µÄttUserPacket½á¹¹£¨tsUserPacketµÄtypedef£©£¬£¬£¬ £¬£¬£¬£¬£¬½ç˵ÈçÏ£º


struct tsUserPacket {

void * pktuLinkNextPtr; // Next tsUserPacket for fragmented data

ttUser8BitPtr pktuLinkDataPtr;

ttPktLen pktuLinkDataLength;

ttPktLen pktuChainDataLength;

int pktuLinkExtraCount;

};


pktuLinkNextPtr £ºÓÃÓÚ¸ú×ÙÊý¾Ý°üÖеķÔì¬ ¡£¡£ ¡£¡£¡£¡£¡£¡£´Ë×Ö¶ÎÖ¸Ïò°µÊ¾ÏÂÒ»¸ö·Ô쬵ÄÁíÒ»¸ötsPacket½á¹¹£¬£¬£¬ £¬£¬£¬£¬£¬¸ÃtsPacket»¹±£Áô¶ÔÏÂÒ»¸ö·Ô쬵ÄÒýÓ㬣¬£¬ £¬£¬£¬£¬£¬ÈôÊÇ´ËÁ´½ÓÊÇ×îºóÒ»¸ö·Ô쬣¬£¬£¬ £¬£¬£¬£¬£¬»òÕßÊý¾Ýδ±»·Ô쬣¬£¬£¬ £¬£¬£¬£¬£¬Ôò´Ë×ֶν«ÎªNULL ¡£¡£ ¡£¡£¡£¡£¡£¡£


pktuLinkDataPtr£ºÖ¸Ïòµ±Ç°·Ô쬵ÄÊý¾Ý»º³åÇø ¡£¡£ ¡£¡£¡£¡£¡£¡£µ±TreckºÍ̸ջÔÚ·ÖÆç½×¶Î´¦ÖÃÊý¾Ý°üʱ£¬£¬£¬ £¬£¬£¬£¬£¬Êý¾Ý»º³åÇøÖмòÖ±ÇеØÎ»»á²úÉú±ä¶¯£¬£¬£¬ £¬£¬£¬£¬£¬ÕâÈ¡¾öÓÚµ±Ç°ÔÚ´¦ÖõÄÊý¾Ý°üµØµãºÍ̸²ã ¡£¡£ ¡£¡£¡£¡£¡£¡£ÀýÈ磬£¬£¬ £¬£¬£¬£¬£¬µ±TreckºÍ̸ջ´¦ÖÃÒÔÌ«Íø²ã£¨ÔÚtfEtherRecv()º¯ÊýÖУ©Ê±£¬£¬£¬ £¬£¬£¬£¬£¬´Ë×Ö¶ÎÖ¸ÏòÒÔÌ«Íø±¨Í· ¡£¡£ ¡£¡£¡£¡£¡£¡£


pktuLinkDataLength£ºpktuLinkDataPtrÖ¸ÏòµÄÊý¾ÝµÄ´óÓ×£¬£¬£¬ £¬£¬£¬£¬£¬¼´µ¥¸ö·Ô쬵ĴóÓ× ¡£¡£ ¡£¡£¡£¡£¡£¡£

pktuChainDataLength£º°µÊ¾Ô̺¬ËùÓзÔ쬵ÄÊý¾Ý°ü³¤¶È£¬£¬£¬ £¬£¬£¬£¬£¬¼´Êý¾Ý°üµÄ×Ü´óÓ× ¡£¡£ ¡£¡£¡£¡£¡£¡£ËüֻΪµÚÒ»¸ö·Ôì¬ÉèÖà ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈôÊÇÊý¾ÝûÓзÔ쬣¬£¬£¬ £¬£¬£¬£¬£¬ÔòµÅ×ÚpktuLinkDataLength ¡£¡£ ¡£¡£¡£¡£¡£¡£


2¡¢ºÍ̸ջ´¦Öùý³Ì


ºÍ̸ջÖеÄÒ»¸ö³£¼ûģʽÊÇÔÚºÍ̸ջÖеIJãÖ®¼äÒÆ¶¯Ê±µ÷ÕûpktuLinkDataPtrÖ¸Õë ¡£¡£ ¡£¡£¡£¡£¡£¡£ÀýÈ磬£¬£¬ £¬£¬£¬£¬£¬ÈôÊÇ8827Ì«Ñô¼¯ÍŰüÊÇÒ»¸öICMP»ØÏÔÒªÇó°ü£¨ping£©£¬£¬£¬ £¬£¬£¬£¬£¬ËüµÄºÍ̸ÓÉÈý²ã×é³É£ºEthernet¡¢IPv4¡¢ICMP ¡£¡£ ¡£¡£¡£¡£¡£¡£ÔÚÕâÖÖÇé¿öÏ£¬£¬£¬ £¬£¬£¬£¬£¬µ±´¦ÖÃÒÔÌ«Íø²ã£¨ÔÚtfEtherRecv()º¯ÊýÖУ©Ê±£¬£¬£¬ £¬£¬£¬£¬£¬pktuLinkDataPtrÖ¸ÏòÒÔÌ«Íø±¨Í·µÄÆðÍ·£¬£¬£¬ £¬£¬£¬£¬£¬¶øºóÔÚÒÆ¶¯µ½ÏÂÒ»²ã֮ǰ£¬£¬£¬ £¬£¬£¬£¬£¬Ê¹ÓÃÒÔÏ´úÂë¶ÔÆä½øÐе÷Õû£¬£¬£¬ £¬£¬£¬£¬£¬ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


ÔÚ±¾ÀýÖУ¬£¬£¬ £¬£¬£¬£¬£¬0xe£¨Ê®½øÔìΪ14£©ÊÇÒÔÌ«Íø±¨Í·£¨6£¨dst MAC£©+6£¨src MAC£©+2£¨etherType£©£©µÄ´óÓ× ¡£¡£ ¡£¡£¡£¡£¡£¡£µ±tfEtherRecv()º¯ÊýʵÏÖ°ü´¦ÖÃʱ£¬£¬£¬ £¬£¬£¬£¬£¬Ëü½«°üת·¢µ½ÏÂÒ»²ã´¦Öà ¡£¡£ ¡£¡£¡£¡£¡£¡£Ö§³ÖµÄÒÔÌ«ÍøÀàÐÍÓÐARP¡¢IPv4ºÍIPv6 ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


ÔÚʾÀýÖУ¬£¬£¬ £¬£¬£¬£¬£¬µ±IPv4²ã½Ó¹Üµ½Êý¾Ý°ü£¨ÔÚº¯ÊýtfIpIncomingPacket()º¯ÊýÖУ©Ê±£¬£¬£¬ £¬£¬£¬£¬£¬Ö¸ÕëpktuLinkDataPtrÒѾ­Ö¸ÏòIP±¨Í· ¡£¡£ ¡£¡£¡£¡£¡£¡£´«ÈëÊý¾ÝÓÉÓµÓÐÒ»Ñù¶¨ÃûÔ¼¶¨tf*IncomingPacketµÄº¯Êý´¦Ö㬣¬£¬ £¬£¬£¬£¬£¬ÆäÖÐ*ÊǺÍ̸Ãû ¡£¡£ ¡£¡£¡£¡£¡£¡£¶ÔÓÚICMP°üÀ´Ëµ£¬£¬£¬ £¬£¬£¬£¬£¬ËüÓÉÈý²ãºÍ̸×é³É£¨Ethernet/IPv4/ICMP£©£¬£¬£¬ £¬£¬£¬£¬£¬Êý¾Ý°ü½«Óɺ¯ÊýtfEtherRecv¡¢tfIpIncomingPacketºÍtfIcmpIncomingPacketº¯Êý±ðÀë´¦Öà ¡£¡£ ¡£¡£¡£¡£¡£¡£


3¡¢·Ô쬳Á×é


TreckºÍ̸ջÔÚtfIpReassemblePacket()º¯ÊýÖд¦Ö÷Ô쬵ijÁ×飬£¬£¬ £¬£¬£¬£¬£¬¸Ãº¯ÊýÓÉtfIpIncomingPacket()ŲÓà ¡£¡£ ¡£¡£¡£¡£¡£¡£Ã¿µ±½Ó¹Üµ½·¢ÍùÉ豸µÄIP·Ôì¬Ê±£¬£¬£¬ £¬£¬£¬£¬£¬¾Í»áŲÓô˺¯Êý ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈôÊǶÌȱ·Ô쬣¬£¬£¬ £¬£¬£¬£¬£¬º¯Êý½«·µ»ØNULL ¡£¡£ ¡£¡£¡£¡£¡£¡£²»È»£¬£¬£¬ £¬£¬£¬£¬£¬ÈôÊÇËùÓзÔ쬶¼´ïµ½²¢ÇÒûÓи¡·º£¬£¬£¬ £¬£¬£¬£¬£¬ÔòÍøÂçºÍ̸ջ½«Ê¹ÓÃpktuLinkNextPtr×ֶν«·Ôì¬Á´½ÓÔÚһ·£¬£¬£¬ £¬£¬£¬£¬£¬¶øºó½«Êý¾Ý°ü´«µÝ¸øÏÂÒ»²ã½øÇ°½øÒ»²½´¦Öà ¡£¡£ ¡£¡£¡£¡£¡£¡£Ôڴ˸ߵÍÎÄÖУ¬£¬£¬ £¬£¬£¬£¬£¬¡°³Á×顱һ´Ê²¢²»ÁÏζ׎«Êý¾Ý°ü¸´Ôìµ½Â½ÐøµÄ´æ´¢¿é£¬£¬£¬ £¬£¬£¬£¬£¬¶øÖ»Êǵ¥Ò»µØ½«ËüÃÇÁ´½Óµ½Ò»¸öÁ´±íÖÐ ¡£¡£ ¡£¡£¡£¡£¡£¡£·Ôì¬Êý¾ÝÁ´±í½á¹¹ÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

4¡¢tfIpIncomingPacketº¯Êý


tfIpIncomingPacket()º¯ÊýÊÇ´¦ÖÃIP°üµÄÖØÒªº¯Êý£¬£¬£¬ £¬£¬£¬£¬£¬¸Ãº¯ÊýÖØÒªÁ÷³ÌÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


tfIpIncomingPacket()Ê×ÏÈÅжÏÊý¾Ý°üºÏ·¨ÐÔ ¡£¡£ ¡£¡£¡£¡£¡£¡£tfIpIncomingPacket()º¯Êý³ýÁËÑéÖ¤IPͷУÑéºÍ£¬£¬£¬ £¬£¬£¬£¬£¬Ëü»¹½øÐÐÒÔÏÂÑéÖ¤£¬£¬£¬ £¬£¬£¬£¬£¬ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


¶øºóÈôÊÇËùÓкϷ¨ÐԲ鳭¶¼Í¨¹ý£¬£¬£¬ £¬£¬£¬£¬£¬tfIpIncomingPacket()º¯Êý½«²é³­IP±¨Í·ÖÐTotalLength ÊÇ·ñÑϸñÓ×ÓÚÊý¾Ý°üµÄpktuChainDataLength£¬£¬£¬ £¬£¬£¬£¬£¬ÕⰵʾÏÖʵ½Ó¹ÜµÄÊý¾Ý±ÈIP±¨Í·ÖÐÉêÃ÷µÄÊý¾Ý¶à ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈôÊÇÊÇÕæµÄ£¬£¬£¬ £¬£¬£¬£¬£¬Ôò½øÐн¨¼ô²Ù×÷£¬£¬£¬ £¬£¬£¬£¬£¬ÒªÉ¾³ý¶î±íµÄÊý¾Ý£¬£¬£¬ £¬£¬£¬£¬£¬ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


ÔÙÕßÈôÊÇIPÊý¾Ý°üµÄMFΪ1»òÕßFragment Offset´óÓÚ0£¬£¬£¬ £¬£¬£¬£¬£¬ÔòtfIpIncomingPacket()º¯Êý¾ÍҪŲÓÃtfIpReassemblePacket()º¯Êý½øÐзÔ쬳Á×é ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈôÊÇIP·Ôì¬Êý¾Ý½Ó¹Ü²»ÆëÈ«£¬£¬£¬ £¬£¬£¬£¬£¬ÔòtfIpReassemblePacket()º¯Êý·µ»ØNULL ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈôÊÇËùÓÐIP·Ô쬶¼´ïµ½²¢ÇÒûÓÐÃýÎ󣬣¬£¬ £¬£¬£¬£¬£¬ÔòTreckºÍ̸ջʹÓÃpktuLinkNextPtr×ֶν«ÕâЩ·Ôì¬Á´½ÓÔÚһ·£¬£¬£¬ £¬£¬£¬£¬£¬³ÉÁ¢Á´±í£¬£¬£¬ £¬£¬£¬£¬£¬²¢½«°ü´«µÝµ½ÏÂÒ»²ã½øÇ°½øÒ»²½´¦Ö㬣¬£¬ £¬£¬£¬£¬£¬ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


×îºóÈôÊÇÒѾ­ÊÕµ½ÆëÈ«µÄIPÊý¾Ý°ü£¬£¬£¬ £¬£¬£¬£¬£¬ÔòtfIpIncomingPacket()º¯Êýƾ¾ÝIPÊý¾Ý°üÖеĺÍ̸×ֶεĺÍ̸ºÅ£¬£¬£¬ £¬£¬£¬£¬£¬Å²ÓÃÏàÓ¦µÄºÍ̸°ü´¦Öú¯Êý½øÐд¦Öà ¡£¡£ ¡£¡£¡£¡£¡£¡£±ÉÈËÁдúÂëÖУ¬£¬£¬ £¬£¬£¬£¬£¬µ±ºÍ̸ºÅΪUDPʱ£¬£¬£¬ £¬£¬£¬£¬£¬ÔòŲÓÃtfUdpIncomingPacket()º¯Êý£¬£¬£¬ £¬£¬£¬£¬£¬µ±Êý¾Ý°üºÍ̸ΪIP-in-IPºÍ̸£¨ºÍ̸ºÅ4£©Ê±£¬£¬£¬ £¬£¬£¬£¬£¬»áµÝ¹éŲÓÃtfIpIncomingPacket()º¯Êý£¬£¬£¬ £¬£¬£¬£¬£¬´úÂëʵÏÖÈçÏÂËùʾ£º



8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


Áù¡¢·ì϶µÀÀí·ÖÎö


1¡¢CVE-2020-11896


ǰÎÄÒѾ­½éÉÜtfIpIncomingPacket()º¯ÊýµÄʵÏÖ¹ý³Ì£¬£¬£¬ £¬£¬£¬£¬£¬µÚ¶þ²½µÄÊý¾Ý²Ã¼ôÊÇ·ì϶µÄÔ­Òò£¬£¬£¬ £¬£¬£¬£¬£¬ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


pktuLinkDataLength±£Áôµ±Ç°·Ô쬵ĴóÓ×£¬£¬£¬ £¬£¬£¬£¬£¬pktuChainDataLength±£ÁôÕû¸öIPÊý¾Ý°üµÄ´óÓ× ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈôÊÇÖ´ÐÐÉÏÊö²Ù×÷£¬£¬£¬ £¬£¬£¬£¬£¬½«µ¼ÖÂÒ»¸ö²»Ò»ÖÂÐÔµÄ״̬£¬£¬£¬ £¬£¬£¬£¬£¬ÆäÖÐpkt->pktuChainDataLength==pkt->pktuLinkDataLength£¬£¬£¬ £¬£¬£¬£¬£¬µ«¿ÉÄÜÓÐpkt->pktuLinkNextPtrÖ¸ÏòÆäËû·Ôì¬ ¡£¡£ ¡£¡£¡£¡£¡£¡£¸ü½øÒ»²½µÄÆäÖÐÁ´±íÉÏ·Ô쬵Ä×ÜÊý¾Ý´óÓ׿ÉÄÜ´óÓÚ´æ´¢ÔÚpktuChainDataLength±äÁ¿ÖеĴóÓ× ¡£¡£ ¡£¡£¡£¡£¡£¡£ÕâÖÖ²Ù×÷µ¼ÖµIJ»Ò»ÖÂÐÔ½«»áµ¼ÖºóÐø±¨ÎÄ´¦ÖòúÉúÒì³£ ¡£¡£ ¡£¡£¡£¡£¡£¡£


ͨ¹ýµ¥Ò»µØÉèÖÃÃýÎóµÄIP°ü·Ôì¬ÊÇÎÞ·¨´¥·¢·ì϶µÄ£¬£¬£¬ £¬£¬£¬£¬£¬ÓÉÓڲüô¹ýºóµÄ·Ôì¬Êý¾ÝÔÚºóÐøµÄtfIpReassemblePacket()º¯Êý²Ù×÷ÖÐ»áÆ¾¾ÝpktuChainDataLengthµÄ´óÓ×£¬£¬£¬ £¬£¬£¬£¬£¬³ÁгÉÁ¢·Ôì¬Á´±í£¬£¬£¬ £¬£¬£¬£¬£¬²»»áÔì³É²»Ò»ÖµÄ״̬ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÃÎÏëµÄÁ÷³ÌÊÇÏÈʵÏÖ·Ôì¬Á´±íµÄ³ÉÁ¢£¬£¬£¬ £¬£¬£¬£¬£¬ÔÙ½øÐÐÁ´±íÊý¾Ý×Ü´óÓ׵IJüôÁ÷³Ì£¬£¬£¬ £¬£¬£¬£¬£¬ÕâÑù¾Í»á½øÈë²»Ò»ÖµÄ״̬ ¡£¡£ ¡£¡£¡£¡£¡£¡£


ΪÁËÔÚIP²ã´¦Ö÷Ôì¬Êý¾Ý°ü²¢´¥·¢Ö´ÐÐÓÐÎÊÌâµÄÁ÷³Ì´úÂ룬£¬£¬ £¬£¬£¬£¬£¬Äܹ»Ê¹ÓÃIP-in-IPÊý¾Ý°ü ¡£¡£ ¡£¡£¡£¡£¡£¡£¶ÔÓÚ·Ô쬵ÄIP-in-IPÊý¾Ý°ü£¬£¬£¬ £¬£¬£¬£¬£¬tfIpIncomingPacket()º¯Êý½«ÖÁÉٵݹéŲÓÃÁ½´Î£¬£¬£¬ £¬£¬£¬£¬£¬Ò»´ÎÓÃÓÚIPËí·°üµÄÄÚ²ãIPÊý¾Ý°ü£¬£¬£¬ £¬£¬£¬£¬£¬ÂÅ´ÎÓÃÓÚ±í²ãIPÊý¾Ý°ü£¨Ã¿´¦ÖÃÒ»¸ö±í²ãIP°ü·Ôì¬Ëã×÷Ò»´Î£© ¡£¡£ ¡£¡£¡£¡£¡£¡£


tfIpIncomingPacket()º¯ÊýÔÚ´¦ÖÃIPËí·Êý¾Ý°üµÄʱ³½½«ÄÚ²¿IPÊý¾Ý°ü×÷Ϊ·Ç·Ôì¬Êý¾Ý°ü½øÐд¦Öà ¡£¡£ ¡£¡£¡£¡£¡£¡£ÄÚ²¿Êý¾Ý°ü´Ë¿ÌÓɶà¸ö·Ôì¬×é³É£¬£¬£¬ £¬£¬£¬£¬£¬µ«ÔÚIP±¨Í·ÖÐÏóÕ÷Ϊ·Ç·Ô쬣¨MF=0£©£¬£¬£¬ £¬£¬£¬£¬£¬ËùÒÔËü²»»áÔÙ½øÈëtfIpReassemblePacket()º¯Êý½øÐгÁ×é ¡£¡£ ¡£¡£¡£¡£¡£¡£Ëü´Ë¿ÌÓÉÒ»¸öÁ´±íÖеöµ¥¶ÀµÄtsPacketÁ´½Ó×é³É£¬£¬£¬ £¬£¬£¬£¬£¬Ã¿¸öÁ´½Ó¶¼ÓÐÒ»¸öµ¥¶ÀµÄpktuLinkDataLengthÖµ ¡£¡£ ¡£¡£¡£¡£¡£¡£¿£¿£¿£¿ £¿£Ë¼¿¼ÏÂÃæµÄÀý×Ó£¬£¬£¬ £¬£¬£¬£¬£¬Ëü½«ÓÐÖúÓÚÀí½â·ì϶µÄ³ÉÒò£º


¡ñ Inner IP packet: IPv4{len=32, proto=17}/UDP{checksum=0, len=12}£¬£¬£¬ £¬£¬£¬£¬£¬ÆäÖÐÔ̺¬1000×Ö½ÚµÄÊý¾Ý¡¯A¡¯ ¡£¡£ ¡£¡£¡£¡£¡£¡£

¡ñ Outer IP packet (fragment 1): IPv4{frag offset=0, MF=1, proto=4, id=0xabcd} ,ÆäÖÐÔ̺¬40×Ö½ÚµÄIPÊý¾Ý ¡£¡£ ¡£¡£¡£¡£¡£¡£

¡ñ Outer IP packet (fragment 2): IPv4{frag offset=40, MF=0, proto=4, id=0xabcd} £¬£¬£¬ £¬£¬£¬£¬£¬ÆäÖÐÊý¾Ý¸ººÉΪ988×Ö½Ú ¡£¡£ ¡£¡£¡£¡£¡£¡£


ΪÁËÈÆ¹ýUDPУÑ飬£¬£¬ £¬£¬£¬£¬£¬½«Ð£ÑéºÍ×Ö¶ÎchecksumÉèÖÃΪ0 ¡£¡£ ¡£¡£¡£¡£¡£¡£Ê·ýÖеķÔ쬽ṹÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


µ±TreckºÍ̸ջ´¦ÖÃ±í²¿·Ôì¬Ê±£¬£¬£¬ £¬£¬£¬£¬£¬ËüʹÓÃtsUserPacket½á¹¹ÖеÄpktuLinkNextPtr×Ö¶ÎÀ´Á´½ÓËüÃÇ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈçǰËùÊö£¬£¬£¬ £¬£¬£¬£¬£¬µ±tfIpIncomingPacket()º¯Êý´¦ÖÃÄÚ²¿IPÊý¾Ý°ü£¨ºÍ̸Ϊ4£¬£¬£¬ £¬£¬£¬£¬£¬IP-in-IP£©Ê±£¬£¬£¬ £¬£¬£¬£¬£¬ËüÒѾ­ÊµÏÖÁË·Ôì¬Êý¾ÝµÄ³Á×飨ÄÚ²¿IPÊý¾Ý°üÓÉÁ´½ÓÔÚһ·µÄÁ½¸ötsPacket½á¹¹°µÊ¾£© ¡£¡£ ¡£¡£¡£¡£¡£¡£·Ôì¬Êý¾Ý³Á×éºóµÄÁ´±í½á¹¹ÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


ÓÉÓÚtfIpIncomingPacket()º¯ÊýÔÚ½øÐÐÓÐЧÐÔÅжÏʱ£¬£¬£¬ £¬£¬£¬£¬£¬Ö»Ë¼¿¼tsUserPacketÖеÄpktuChainDataLength×ֶΣ¨¶ø²»ÊÇpktuLinkDataLength£©£¬£¬£¬ £¬£¬£¬£¬£¬ËùÒÔÔÚ´¦ÖÃÄÚ²¿IP°üʱ½«½øÈëÃýÎóµÄÁ´±í³¤¶ÈµÄ²Ã¼ôÁ÷³Ì£¬£¬£¬ £¬£¬£¬£¬£¬´Ó¶øµ¼ÖÂÁËÎÊÌâ ¡£¡£ ¡£¡£¡£¡£¡£¡£


ÄÚ²¿IP°üͨ¹ýÁËIPÍ·ÆëÈ«ÐԲ鳭£¬£¬£¬ £¬£¬£¬£¬£¬ÔÚ¸ÃÀý×ÓÖУ¬£¬£¬ £¬£¬£¬£¬£¬ÄÚ²¿IP°üµÄ×ܳ¤¶È(32£©Ó×ÓÚÁ´±íÊý¾Ý³¤¶È£¨1000+8+20=1028£©£¬£¬£¬ £¬£¬£¬£¬£¬Òò¶øTreckºÍ̸ջ½«³¢ÊÔÃýÎ󵨽¨¼ôÊý¾Ý°ü£¬£¬£¬ £¬£¬£¬£¬£¬²½ÖèÊǽ«×Ö¶ÎpktuLinkDataLengthºÍpktuChainDataLengthÉèÖÃΪһÑùµÄÖµipTotalLength£¨ÔÚ8827Ì«Ñô¼¯ÍÅʾÀýÖÐΪ32£© ¡£¡£ ¡£¡£¡£¡£¡£¡£Õâµ¼ÖÂÄÚ²¿IPÊý¾Ý°üÓÉÁ´½ÓÔÚһ·µÄÁ½¸ötsPacket½á¹¹°µÊ¾£¬£¬£¬ £¬£¬£¬£¬£¬µ«ËüÃǵÄÊý¾Ý×ܳ¤¶È´óÓÚpktuChainDataLength×ֶΣ¨½¨¼ôºópktuChainDataLength×ֶβ»ÊÇ1028×Ö½Ú£¬£¬£¬ £¬£¬£¬£¬£¬¶øÊǵÅ×Ú32£© ¡£¡£ ¡£¡£¡£¡£¡£¡£¾­¹ýÊý¾Ý³¤¶È²Ã¼ôºóµÄÁ´±í½á¹¹ÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


´Ë¿ÌÒѾ­Ê¹µÃÁ´±í°×µ½Á˲»Ò»ÖµÄ״̬£¬£¬£¬ £¬£¬£¬£¬£¬ÏÂÃæ½«½éÉÜÈôºÎÀûÓÃÕâÖÖ²»Ò»ÖµÄ״̬À´µ¼ÖÂÄÚ´æ·ÛËé ¡£¡£ ¡£¡£¡£¡£¡£¡£


ÔÚTreckºÍ̸ջ´úÂëÖÐÖÁÉÙÓÐÒ»¸ö´úÂëõè¾¶Äܹ»½«·Ôì¬Êý¾Ý¸´Ôìµ½µ¥¸öÂ½Ðø»º³åÇøÖÐ ¡£¡£ ¡£¡£¡£¡£¡£¡£¾ßÌåµÄÖ´ÐÐõ辶Ϊ£º

tfUdpIncomingPacket() ->  tfSocketIncomingPacket() -> tfCopyPacket() ¡£¡£ ¡£¡£¡£¡£¡£¡£ÏÂÃæµÄ´úÂëÊÇtfSocketIncomingPacket()º¯Êý´¦ÖÃUDPÊý¾Ý±¨µÄ´úÂëµÄÒ»²¿ÃÅ£¬£¬£¬ £¬£¬£¬£¬£¬ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


Õâ¶Î´úÂëÖÐtfSocketIncomingPacket()º¯ÊýŲÓÃtfGetSharedBuffer()ÉêÇëÄڴ棬£¬£¬ £¬£¬£¬£¬£¬Æä´óÓ×»ùÓÚpktuChainDataLength×ֶεÄÖµ£¬£¬£¬ £¬£¬£¬£¬£¬¶øºóͨ¹ýtfCopyPacket()º¯Êý½«Êý¾Ý°üµÄ·ÖÆç·Ôì¬Öð¸ö¸´Ô쵽зÖÅäµÄÄÚ´æ¿Õ¼äÖУ¬£¬£¬ £¬£¬£¬£¬£¬²úÉúÒç³öµÄ´úÂëÈçÏÂËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


ÓÉÓÚÁ½¸ö·Ôì¬ÖеÄpktuLinkDataLengthÖ®ºÍΪ1000×Ö½Ú£¬£¬£¬ £¬£¬£¬£¬£¬ºóÐøµÄtfCopyPacketº¯Êý½«»á°Ñ1000×Ö½ÚµÄÊý¾Ý¿½±´µ½Õâ¶ÎÄÚ´æÖУ¬£¬£¬ £¬£¬£¬£¬£¬Õ⽫µ¼Ö¶ÑÒç³ö ¡£¡£ ¡£¡£¡£¡£¡£¡£


2¡¢CVE-2020-11898


ÕýÈçǰÎÄÃèÊöÈôºÎ´¥·¢CVE-2020-11896·ì϶ÄÇÑù£¬£¬£¬ £¬£¬£¬£¬£¬Treck TCP/IPºÍ̸ջÎÞ·¨ÕýÈ·´¦ÖÃͨ¹ýIP-in-IPËí·´«ÈëµÄIPv4·Ôì¬ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÕâÒ²¿ÉÄÜÔÊÐíδ¾­Éí·ÝÑéÖ¤µÄ¹¥»÷Õß´Ó¶ÑÖÐй©ÄÚ´æ ¡£¡£ ¡£¡£¡£¡£¡£¡£¿£¿£¿£¿ £¿£Äܹ»Ñ¡È¡ÒÔÏÂʾÀý½øÐзì϶´¥·¢£º


¡ñ ÄÚ²¿IPÊý¾Ý°ü£ºIPv4 {ihl = 0xf£¬£¬£¬ £¬£¬£¬£¬£¬len = 100£¬£¬£¬ £¬£¬£¬£¬£¬proto = 0}£¬£¬£¬ £¬£¬£¬£¬£¬ÓÐÐ§ÔØºÉΪ'\ x00'* 40 +'\ x41'* 100 ¡£¡£ ¡£¡£¡£¡£¡£¡£

¡ñ ±í²¿IPÊý¾Ý°ü£¨·Ôì¬1£©£ºIPv4 {frag offset = 0£¬£¬£¬ £¬£¬£¬£¬£¬MF = 1£¬£¬£¬ £¬£¬£¬£¬£¬proto = 4£¬£¬£¬ £¬£¬£¬£¬£¬id = 0xabcd}£¬£¬£¬ £¬£¬£¬£¬£¬ÆäÖÐ24¸ö×Ö½ÚÀ´×ÔÄÚ²¿IPÊý¾Ý°üÓÐЧ¸ºÔØ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÕâÒâζ׎«¸´Ôì20¸ö×Ö½ÚµÄIP±êÍ·£¬£¬£¬ £¬£¬£¬£¬£¬±í¼Ó4¸ö¿Õ×Ö½Ú ¡£¡£ ¡£¡£¡£¡£¡£¡£

¡ñ ±í²¿IPÊý¾Ý°ü£¨·Ôì¬2£©£ºIPv4 {frag offset = 24£¬£¬£¬ £¬£¬£¬£¬£¬MF = 0£¬£¬£¬ £¬£¬£¬£¬£¬proto = 4£¬£¬£¬ £¬£¬£¬£¬£¬id = 0xabcd}£¬£¬£¬ £¬£¬£¬£¬£¬À´×ÔÄÚ²¿IPÊý¾Ý°üµÄÆäÓà×Ö½Ú×÷ΪÓÐЧ¸ºÔØ ¡£¡£ ¡£¡£¡£¡£¡£¡£


Ê·ýÖеķÔ쬽ṹÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


ÕâÀïihlΪ0xf£¬£¬£¬ £¬£¬£¬£¬£¬°µÊ¾Îª×î´óIPÑ¡Ï£¬£¬ £¬£¬£¬£¬£¬³¤¶ÈΪ60×Ö½Ú£¬£¬£¬ £¬£¬£¬£¬£¬Êý¾Ý°ü×ܳ¤¶Ètotal_lengthΪ100 ¡£¡£ ¡£¡£¡£¡£¡£¡£µ±ÍøÂçºÍ̸ջÊÕµ½Á½¸ö·Ôì¬Ê±£¬£¬£¬ £¬£¬£¬£¬£¬Ëü½«Ê¹ÓÃtfIpReassemblePacket()º¯Êý³ÁÐÂ×é×°ËüÃÇ ¡£¡£ ¡£¡£¡£¡£¡£¡£·Ôì¬Êý¾Ý³Á×éºóµÄÁ´±í½á¹¹ÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


¸ÃtfIpReassemblePacket()º¯ÊýʹÓÃtsUserPacket½á¹¹ÖеÄ×Ö¶ÎpktuLinkNextPtrÁ´½ÓÁ½¸ö·Ôì¬ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈôÊÇÆôÓÃÁËIP-in-IPËí·´«Ê䣬£¬£¬ £¬£¬£¬£¬£¬ÔòÄÚ²¿IPÊý¾Ý°ü½«ËæºóÓÉtfIpIncomingPacket()º¯ÊýÖд¦Ö㬣¬£¬ £¬£¬£¬£¬£¬½¨¼ôºóµÄpktuChainDataLength×ֶβ»ÊÇ160£¬£¬£¬ £¬£¬£¬£¬£¬¶øÊǵÅ×Ú100 ¡£¡£ ¡£¡£¡£¡£¡£¡£¾­¹ýÊý¾Ý³¤¶È²Ã¼ôºóµÄÁ´±í½á¹¹ÈçÏÂͼËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


ÄÚ²¿IPÊý¾Ý°üͨ¹ýIP±êÍ·ÆëÈ«ÐԲ鳭£¬£¬£¬ £¬£¬£¬£¬£¬ÓÉÓÚ½ö˼¿¼ÁËtsUserPacketµÄpktuChainDataLength×ֶΣ¨¶ø²»Ë¼¿¼pktuLinkDataLength£© ¡£¡£ ¡£¡£¡£¡£¡£¡£ÓÉÓÚÔڳ߶ÈIPÍ·²¿£¨20¸ö×Ö½Ú£©Ö®ºóÓÐ4¸ö¿Õ×Ö½Ú£¬£¬£¬ £¬£¬£¬£¬£¬²¢ÇÒÒ»¸ö¿Õ×Ö½Ú´ú±íIPÑ¡ÏîµÄĩ⣬£¬£¬ £¬£¬£¬£¬£¬IPÑ¡Ïî½âÎöͨ¹ý²é³­ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÓÉÓÚÄÚ²¿IPÊý¾Ý°üÔ̺¬ÎÞЧµÄIPv4ºÍ̸±àºÅ£¨ProtocolΪ0£©£¬£¬£¬ £¬£¬£¬£¬£¬½øÈëdefault·ÖÖ§£¬£¬£¬ £¬£¬£¬£¬£¬¶øºóÖ±½Ó½øÈëTM_IP_LOCAL_FLAG·ÖÖ§ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


Òò¶øÍøÂçºÍ̸ջ½«Í¨¹ý·¢ËÍÀàÐÍΪ3£¨Ö¸±ê²»³É´ï£©ºÍ´úÂëΪ2£¨ºÍ̸²»³É´ï£©µÄICMPÃýÎóÐÂÎÅÀ´»Ø¾ø¸ÃÊý¾Ý°ü ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


ÕÆ¹Ü´´½¨ÃýÎóÊý¾Ý°üµÄÊÇtfIcmpErrPacket()º¯Êý ¡£¡£ ¡£¡£¡£¡£¡£¡£Ëü·ÖÅäÒ»¸öеÄÊý¾Ý°ü£¬£¬£¬ £¬£¬£¬£¬£¬³õʼ»¯Ò»Ð©ICMPÍ·²¿×Ö¶Î ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


×îºó´ÓºóÐøÊý¾Ý°ü£¨ÄÚ²¿IPÊý¾Ý°ü£©Öи´ÔìһЩÊý¾Ý ¡£¡£ ¡£¡£¡£¡£¡£¡£¸´Ô첿ÃÅÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


Èç´úÂëËù¼û£¬£¬£¬ £¬£¬£¬£¬£¬tfIcmpErrPacket()º¯Êýͨ¹ý»ñÈ¡IP±¨Í·³¤¶È£¨ÒÔ×Ö½ÚΪµ¥Ôª¼ÓÉÏ8£¬£¬£¬ £¬£¬£¬£¬£¬ÔÚÏÖʵÇé¿öÏÂΪ60 + 8 = 68£©ÓëpktuLinkDataLength×ֶΣ¨ÒÔ¼°±»²Ã¼ôΪ100£©Ö®¼äµÄ×îÓ×Ö·´ÍÆËãÒª¸´ÔìµÄ×Ö½ÚÊý ¡£¡£ ¡£¡£¡£¡£¡£¡£ÓÉÓÚ·¢ËÍÊý¾Ý°üµÄµÚÒ»¸ö·Ô쬵ÄÏÖʵÁ´Â·Êý¾Ý³¤¶ÈΪ24£¨¶ø²»ÊÇ100£©£¬£¬£¬ £¬£¬£¬£¬£¬Òò¶øtfIcmpErrPacket()º¯Êý½«´Ó¶ÑÖи´Ôì68-24 = 44×ֽڵĶî±íÊý¾Ý ¡£¡£ ¡£¡£¡£¡£¡£¡£¶øºóÉèÖÃv12_icmpErrPacketÖÐÓйØÊý¾Ý ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


×îºóŲÓÃtfIpSendPacket()º¯Êý·¢ËÍicmp_ErrPacket°üµ½Ö¸±êµØÖ·£¬£¬£¬ £¬£¬£¬£¬£¬Õ⽫µ¼ÖÂ44×Ö½ÚµÄÐÅϢй¶ ¡£¡£ ¡£¡£¡£¡£¡£¡£


3¡¢CVE-2020-11910


CVE-2020-11910ÊÇÔ½½ç¶Á·ì϶£¬£¬£¬ £¬£¬£¬£¬£¬¸Ã·ì϶´æÔÚtfIcmpIncomingPacketº¯ÊýÖУ¬£¬£¬ £¬£¬£¬£¬£¬¸Ãº¯ÊýÖØÒªÊÇ´¦ÖÃICMP°ü ¡£¡£ ¡£¡£¡£¡£¡£¡£tfIcmpIncomingPacketº¯ÊýÔÚ´¦ÖÃÉ豸ÊÕµ½ÀàÐÍΪ3£¬£¬£¬ £¬£¬£¬£¬£¬codeΪ4µÄICMP°üµÄʱ³½£¬£¬£¬ £¬£¬£¬£¬£¬´úÂ벢ûÓÐÑéÖ¤ºóÐøÊý¾ÝµÄ³¤¶È£¬£¬£¬ £¬£¬£¬£¬£¬Ö±½Ó¾Í½Ó¼ûÁ˶ÔÓ¦µØÎ»µÄÊý¾Ý£¬£¬£¬ £¬£¬£¬£¬£¬Ôì³ÉÁËÔ½½ç¶Á·ì϶ ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


4¡¢CVE-2020-11911


CVE-2020-11911ÊÇδÊÚȨµÄÃô¸ÐÐÅÏ¢¸üзì϶£¬£¬£¬ £¬£¬£¬£¬£¬¸Ã·ì϶´æÔÚtfIcmpIncomingPacketº¯ÊýÖУ¬£¬£¬ £¬£¬£¬£¬£¬¸Ãº¯ÊýÖØÒªÊÇ´¦ÖÃICMP°ü ¡£¡£ ¡£¡£¡£¡£¡£¡£tfIcmpIncomingPacketº¯ÊýÔÚ´¦ÖÃÉ豸ÊÕµ½ÀàÐÍΪ18£¨Address mask reply£©°üµÄʱ³½£¬£¬£¬ £¬£¬£¬£¬£¬´úÂ벢ûÓÐÑéÖ¤É豸ÊÇ·ñ·¢Ë͹ýÀàÐÍ17£¨Address mask request£©ÒªÇ󣬣¬£¬ £¬£¬£¬£¬£¬¾ÍÖ±½Ó¸üÐÂÁËÉ豸µÄ×ÓÍøÑÚÂë ¡£¡£ ¡£¡£¡£¡£¡£¡£ÈçÏ´úÂëËùʾ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


Æß¡¢CVE-2020-11898·ì϶ÑéÖ¤


Ô¶³Ì¹¥»÷´òÓ¡»ú£¬£¬£¬ £¬£¬£¬£¬£¬ÊÓÆµÇ뵽΢ÐŹ«¼ÒºÅÖв鿴£ºÑéÖ¤ÊÓÆµ ¡£¡£ ¡£¡£¡£¡£¡£¡£


°Ë¡¢²Î¿¼


1¡¢https://www.ietf.org/rfc/rfc2003.txt

2¡¢https://www.ietf.org/rfc/rfc792.txt

3¡¢https://www.ietf.org/rfc/rfc1853.txt

4¡¢https://www.jsof-tech.com/ripple20/

5¡¢https://kb.cert.org/vuls/id/257161

6¡¢/article/1/11834.html

7¡¢JSOF_Ripple20_Technical_Whitepaper_June20.pdf



8827Ì«Ñô¼¯ÍÅ»ý¼«·ÀÓù³¢ÊÔÊÒ£¨ADLab£©


ADLab³ÉÁ¢ÓÚ1999Ä꣬£¬£¬ £¬£¬£¬£¬£¬ÊÇÖйú°²È«ÐÐÒµ×îÔç³ÉÁ¢µÄ¹¥·À¼¼Êõ×êÑг¢ÊÔÊÒÖ®Ò»£¬£¬£¬ £¬£¬£¬£¬£¬Î¢ÈíMAPP´òËãÖ÷Ìâ³ÉÔ±£¬£¬£¬ £¬£¬£¬£¬£¬¡°ºÚȸ¹¥»÷¡±¸ÅÏëÊ×ÍÆÕß ¡£¡£ ¡£¡£¡£¡£¡£¡£½ØÖ¹Ä¿Ç°£¬£¬£¬ £¬£¬£¬£¬£¬ADLabÒÑͨ¹ýCVEÀۼư䲼°²È«·ì϶1000Óà¸ö£¬£¬£¬ £¬£¬£¬£¬£¬Í¨¹ý CNVD/CNNVDÀۼư䲼°²È«·ì϶800Óà¸ö£¬£¬£¬ £¬£¬£¬£¬£¬³ÖÐøÎ¬³Ö¹ú¼ÊÍøÂ簲ȫÁìÓòÒ»Á÷Ë®×¼ ¡£¡£ ¡£¡£¡£¡£¡£¡£³¢ÊÔÊÒ×êÑз½Ïòº­¸Ç²Ù×÷ϵͳÓëÀûÓÃϵͳ°²È«×êÑÓ×¢ÒÆ¶¯ÖÇÄÜÖն˰²È«×êÑÓ×¢ÎïÁªÍøÖÇÄÜÉ豸°²È«×êÑÓ×¢Web°²È«×êÑÓ×¢¹¤¿ØÏµÍ³°²È«×êÑÓ×¢ÔÆ°²È«×êÑÐ ¡£¡£ ¡£¡£¡£¡£¡£¡£×êÑгɾÍÀûÓÃÓÚ²úÆ·Ö÷Ìâ¼¼Êõ×êÑÓ×¢¹ú¶È³Áµã¿Æ¼¼ÏîÄ¿¹¥¹Ø¡¢×¨Òµ°²È«·þÎñµÈ ¡£¡£ ¡£¡£¡£¡£¡£¡£



8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website