Apache Tomcat Çå¾²ÈÆ¹ýÎó²î CVE-2018-1305 ´¦Öóͷ£½¨Òé
2018-03-02
Ò». Îó²î¸ÅÊö
Apache Tomcat servlet ×¢Êͽç˵µÄÇå¾²Ô¼Êø£¬Ö»ÔÚservlet¼ÓÔØºó²ÅÓ¦ÓÃÒ»´Î¡£ÓÉÓÚÒÔÕâÖÖ·½·¨½ç˵µÄÇå¾²Ô¼Êø£¬Ó¦ÓÃÓÚURLģʽ¼°¸ÃµãÏÂÈκÎURL£¬ºÜ¿ÉÄÜÈ¡¾öÓÚservlet¼ÓÔØµÄÐò´Î£¬½«»á½«×ÊԴ̻¶¸øÎ´¾ÊÚȨ»á¼ûËüÃǵÄÓû§¡£
ÏêÇéÇë²Î¿¼ÈçÏÂÁ´½Ó£º
https://lists.apache.org/thread.html/d3354bb0a4eda4acc0a66f3eb24a213fdb75d12c7d16060b23e65781@%3Cannounce.tomcat.apache.org%3E
¶þ. Ó°Ïì¹æÄ£
Apache Tomcat < 9.0.5
Apache Tomcat < 8.5.28
Apache Tomcat < 8.0.50
Apache Tomcat < 7.0.85
Çå¾²°æ±¾
Apache Tomcat 9.0.5
Apache Tomcat 8.5.28
Apache Tomcat 8.0.50
Apache Tomcat 7.0.85
ƾ֤¹Ù·½ÐÎò£¬´ËÎó²î´¥·¢µÄÌõ¼þÓУº
1. Ӫҵϵͳ°²ÅÅÔڵͰ汾µÄTomcatÖС£
2. Ӫҵϵͳͨ¹ý×¢½âµÄ·½·¨½ç˵Çå¾²Ô¼Êø¡£
Òò´Ë£¬¿Éͨ¹ýTomcat°æ±¾»òÕßӪҵϵͳÇå¾²Ô¼Êø½ç˵ÅŲéµÄ·½·¨À´ÅжÏ×ÔÉíӪҵϵͳÊÇ·ñ»áÊÜÓ°Ï죬ÏêÇéÈçÏÂËùÊö¡£
3.1 Tomcat°æ±¾ÅжÏ
ͨ³£ÔÚApache Tomcat¹ÙÍøÏÂÔØµÄ×°ÖðüÃû³ÆÖлá°üÀ¨ÓÐÄ¿½ñTomcatµÄ°æ±¾ºÅ£¬¿Éͨ¹ýÉó²é½âѹºóµÄÎļþ¼ÐÃû³ÆÀ´È·¶¨Ä¿½ñµÄ°æ±¾¡£

µ±Ê¹ÓõÄTomcat°æ±¾ÔÚÊÜÓ°ÏìµÄ¹æÄ£ÄÚ£¬ÓªÒµÏµÍ³Í¬Ê±»¹ÒªÖª×ã½ç˵ServletSecurity×¢½â¾ÙÐÐACL±£»¤¿ØÖÆ£¬Ïà¹ØÆóÒµ¿ÉÖ±½Ó×Éѯ¿ª·¢Ö°Ô±Ä¿½ñÓ¦ÓÃϵͳÊÇ·ñÓ¦ÓÃÁË×¢½âÓÐServletSecurityµÄACL»á¼û¿ØÖÆ¡£
ÈôÔËÐеÄӪҵϵͳÎÞÏà¹ØÔ´´úÂ룬ÇÒÎÞ¶ÔÓ¦µÄ¿ª·¢Ö°Ô±¿É×Éѯ£¬¿Éͨ¹ýÈçÏ´úÂë¼ì²éµÄ·½·¨¾ÙÐÐÅжϡ£
½«TomcatÖа²ÅŵÄÓ¦ÓÃϵͳ£¨Ó¦Óð²ÅÅĿ¼Ϊ{Tomcat Home}/webapps/£©¿½±´³öÀ´£¬Ê¹ÓÃjd-gui·´±àÒ빤¾ß·´±àÒëÓ¦ÓÃϵͳclassÎļþ£¨Î»ÓÚ/WEB-INF/Ŀ¼ÖУ©£¬²¢Í¨¹ýÒªº¦×ÖËÑË÷µÄ·½·¨ÅжÏÊÇ·ñÓ¦ÓÃÁË@ServletSecurity¡£
ÈçÉÏͼËùʾ£¬Èô´ËϵͳÔËÐÐÓڵͰ汾µÄTomcatÖУ¬»áÊܵ½Îó²îµÄÓ°Ïì¡£
¿ÉʹÓÃAG¹«Ë¾Ô¶³ÌÇå¾²ÆÀ¹Àϵͳ£¨RSAS£©¶ÔÄ¿µÄ¾ÙÐÐɨÃ裬×îеļì²â²å¼þÕýÔÚÑз¢£¬Ô¤¼ÆÏÂÒ»°æ±¾Éý¼¶°üÖлáÌí¼Ó¼ì²â£¬Çëʵʱ¹Ø×¢¹ÙÍøµÄ¸üÐÂÐÅÏ¢£¬ÏÂÔØ²¢Éý¼¶µ½×îвå¼þ°æ±¾¡£¼´½«Ðû²¼µÄÉý¼¶°ü°æ±¾ÈçÏ£º
²úÆ·£ºRSAS Éý¼¶°ü°æ±¾£ºV6.0R02F01.0903
ËÄ. ·À»¤¼Æ»®
4.1 °æ±¾Éý¼¶
Apache¹Ù·½ÔÚа汾Apache Tomcat 9.0.5¡¢8.5.28¡¢8.0.50¡¢7.0.85ÖÐÐÞ¸´Á˸ÃÎó²î£¬ÇëÊÜÓ°ÏìµÄÓû§¾¡¿ìÉý¼¶£¬×îаæÏÂÔØÁ´½Ó¿É²Î¿¼ÒÔÏÂÁÐ±í£¬¿Éƾ֤ÏêϸµÄϵͳÇéÐÎÏÂÔØ¶ÔÓ¦µÄ×°Öðü£º
4.2 ÔÝʱ·À»¤¼Æ»®
´¥·¢¸ÃÎó²îµÄÌõ¼þÌõ¼þÊÇÔÚÆô¶¯tomcatºó£¬»á¼û¸¸Â·¾¶¡°/servlet1¡±Ö®Ç°£¬ÏÈ»á¼ûÁË×Ó·¾¶¡°/servlet1/servlet2¡±£¬´Ó¶øµ¼Ö¶Ôservlet1µÄACL±£»¤Ã»Óб»servlet2¼ÌÐø£¬ÈôÊÇÏÈ»á¼ûÁËservlet1£¬Tomcat»á¼ÓÔØACL²¢¶Ôservlet2¾ÙÐб£»¤¡£ÍŽá¸ÃÎó²îµÄÌØµã£¬¿ÉÒÔÊÖ¶¯»á¼ûÒ»´Î¡°/servlet1¡±Ç¿ÖÆTomcat¼ÓÔØACL£¬Ö»ÒªTomcat²»ÖØÆô£¬ACL±£»¤»áÒ»Ö±ÉúЧ¡£ÇëÏà¹ØÓû§ÍŽá¸÷×ÔӪҵϵͳµÄÏêϸ¹¦Ð§£¬ÆÀ¹À¸¸Â·¾¶¡°/servlet1¡±ÊÇ·ñ¿ÉÒÔÊÖ¶¯»á¼ûºóÔÙ¾ÙÐвÙ×÷£¬ÓйظÃÎó²îµÄÏêϸÐÅÏ¢¿É²Î¿¼¡°µÚÎåÕ Îó²î¸´ÏÖ¡±¡£
Îå. Îó²î¸´ÏÖ
ÈôÊÇÔÚ»á¼û¡°/servlet1/servlet2¡±Ö®Ç°ÏÈ»á¼û¹ý¡°/servlet1¡±£¬Tomcat»á¼ÓÔØACL²¢Æô¶¯¶Ô¡°/servlet1/servlet2¡±µÄ±£»¤£¬ÔòÎó²î²»»á´¥·¢¡£
²¿·Ö²âÊÔ´úÂëÈçÏ£º

ÔÚServlet1ǰ¼ÓÉÏServletSecurity×¢½â£¬Servlet2ÎÞ´Ë×¢½â¡£

½«web.xmlÎļþÖÐservletÏà¶ÔÓ¦µÄurl-patternÐÞ¸ÄΪÈçÉÏͼËùʾºó£¬ÔËÐиù¤³Ì¡£Ê״λá¼ûservlet2µÄURL£¬·¢Ã÷¿ÉÒÔ»á¼û£¬Õë¶Ôservlet1µÄACL²¢Î´ÉúЧ¡£

µÚ¶þ´Î»á¼ûservlet1µÄURL£¬»á¼û±»Õ¥È¡£¬´ËʱACLÉúЧ¡£

Ôٴλá¼ûservlet2µÄURL£¬·¢Ã÷»á¼û±»Õ¥È¡£¬ÈôÊÇACL¶Ôservlet2ÉúЧ£¬±ØÐ轨ÉèÔÚservlet1±»»á¼û¹ýµÄÌõ¼þÏ¡£

Òò´ËÎó²îµÄ¸´ÏÖ½öÏÞÓÚtomcatÆô¶¯ºó£¬ÔÚ»á¼û¡°/servlet1/*¡±Ö®Ç°ÏÈ»á¼ûÁË¡°/servlet1/servlet2/*¡±Ò³Ã棬Èô֮ǰ±£´æÈκÎÈË»á¼û¡°/servlet1/*¡±Ò³Ã棬ÔòÎó²î²»»á´¥·¢¡£Îó²îΣº¦½Ï¸ß£¬¿ÉÊÇʹÓÃÌõ¼þÄÑÌ⣬Òò´ËÓ°Ïì¹æÄ£²¢²»´ó¡£
±¾Ç徲ͨ¸æ½öÓÃÀ´ÐÎò¿ÉÄܱ£´æµÄÇå¾²ÎÊÌ⣬AG¹«Ë¾¿Æ¼¼²»Îª´ËÇ徲ͨ¸æÌṩÈκΰü¹Ü»òÔÊÐí¡£ÓÉÓÚÈö²¥¡¢Ê¹ÓôËÇ徲ͨ¸æËùÌṩµÄÐÅÏ¢¶øÔì³ÉµÄÈκÎÖ±½Ó»òÕß¼ä½ÓµÄЧ¹û¼°Ëðʧ£¬¾ùÓÉʹÓÃÕß×Ô¼ºÈÏÕæ£¬AG¹«Ë¾¿Æ¼¼ÒÔ¼°Ç徲ͨ¸æ×÷Õß²»Îª´Ë¼ç¸ºÈκÎÔðÈΡ£
AG¹«Ë¾¿Æ¼¼ÓµÓжԴËÇ徲ͨ¸æµÄÐÞ¸ÄÏ¢ÕùÊÍȨ¡£ÈçÓû×ªÔØ»òÈö²¥´ËÇ徲ͨ¸æ£¬±ØÐè°ü¹Ü´ËÇ徲ͨ¸æµÄÍêÕûÐÔ£¬°üÀ¨°æÈ¨ÉùÃ÷µÈËùÓÐÄÚÈÝ¡£Î´¾AG¹«Ë¾¿Æ¼¼ÔÊÐí£¬²»µÃí§ÒâÐ޸ĻòÕßÔö¼õ´ËÇ徲ͨ¸æÄÚÈÝ£¬²»µÃÒÔÈκη½·¨½«ÆäÓÃÓÚÉÌҵĿµÄ¡£

AG¹«Ë¾ÔÆ





