¡¾Â©¶´Í¨¸æ¡¿Kubernetes Ingress-nginx×¢½âÑéÖ¤Èƹý©¶´£¨CVE-2024-7646£©
Ðû²¼Ê±¼ä 2024-08-19Ò»¡¢Â©¶´¸ÅÊö
©¶´Ãû³Æ | Kubernetes Ingress-nginx×¢½âÑéÖ¤Èƹý©¶´ | ||
CVE ID | CVE-2024-7646 | ||
©¶´ÀàÐÍ | ÑéÖ¤Èƹý¡¢ÃüÁî×¢Èë | ·¢ÏÖʱ¼ä | 2024-08-19 |
©¶´ÆÀ·Ö | 8.8 | ©¶´Æ·¼¶ | ¸ßΣ |
¹¥»÷ÏòÁ¿ | ÍøÂç | ËùÐèȨÏÞ | µÍ |
ÀûÓÃÄÑ¶È | µÍ | Óû§½»»¥ | ÎÞ |
PoC/EXP | δ¹ûÈ» | ÔÚÒ°ÀûÓà | δ·¢ÏÖ |
ingress-nginxÊÇKubernetesÖÐÒ»¸öÁ÷ÐеÄIngress¿ØÖÆÆ÷£¬ËüʹÓÃNGINX×÷Ϊ·´ÏòÊðÀíºÍ¸ºÔؾùºâÆ÷£¬Ö¼ÔÚÓÃÓÚ¹ÜÀíÍⲿ·ÃÎʵ½Kubernetes¼¯ÈºÄÚ²¿·þÎñµÄ·ÓÉ¡£
2024Äê8ÔÂ19ÈÕ£¬¶¶È¦Îª¶Ä¶øÉú¼¯ÍÅVSRC¼à²âµ½Ingress-nginxÖдæÔÚÒ»¸öÑéÖ¤ÈƹýÃüÁî×¢È멶´£¨CVE-2024-7646£©£¬¸Ã©¶´µÄCVSSÆÀ·ÖΪ8.8¡£
ingress-nginx ¿ØÖÆÆ÷ v1.11.2֮ǰ°æ±¾ÖУ¬ÓÐȨÔÚKubernetes¼¯ÈºÖд´½¨Ingress¹¤¾ß£¨ÊôÓÚnetworking.k8s.io»òextensions API×飩µÄÍþвÕß¿ÉÒÔÈƹý×¢½âÑéÖ¤²¢×¢ÈëÈÎÒâÃüÁ½ø¶ø»ñÈ¡ingress-nginx¿ØÖÆÆ÷µÄƾ֤£¬·ÃÎʼ¯ÈºÖд洢µÄËùÓÐÃô¸ÐÐÅÏ¢¡£
¶þ¡¢Ó°Ï췶Χ
ingress-nginx controller < v1.11.2
Èý¡¢Äþ¾²´ëÊ©
3.1 Éý¼¶°æ±¾
Ä¿Ç°¸Ã©¶´ÒѾÐÞ¸´£¬ÊÜÓ°ÏìÓû§¿ÉÉý¼¶µ½ingress-nginx controller v1.11.2¡£
ÏÂÔØÁ´½Ó£º
https://github.com/kubernetes/ingress-nginx/releases/tag/controller-v1.11.2
3.2 ÁÙʱ´ëÊ©
¸Ã©¶´Ó°Ïì ingress-nginx£¬Èç¹û¼¯ÈºÉÏδ°²×° ingress-nginx£¬Ôò²»»áÊܵ½Ó°Ïì¡£¿ÉÒÔͨ¹ýÒÔÏ·½Ê½Ö®Ò»À´¼ì²é¼¯ÈºÉÏÊÇ·ñ´æÔÚ ingress-nginx¿ØÖÆÆ÷£º
1.¼ì²éÊÇ·ñ´æÔÚ ingress-nginx ÃüÃû¿Õ¼ä£º
ʹÓÃkubectl get namespacesÃüÁÈç¹ûÊä³öÖаüÂÞ ingress-nginx£¬Ôò±íÃ÷¼¯ÈºÖдæÔÚÓë ingress-nginx Ïà¹ØµÄ×ÊÔ´£»»òÕßͨ¹ýkubectl get all -n ingress-nginxÃüÁîÁгö ingress-nginx ÃüÃû¿Õ¼äÖÐËùÓÐµÄ Pod¡¢·þÎñ¡¢²¿ÊðµÈ×ÊÔ´¡£Èç¹û¿´µ½ÓÐÃûΪ ingress-nginx-controller µÄ Deployment »ò Pod£¬ËµÃ÷ ingress-nginx ¿ØÖÆÆ÷ÒѾ°²×°¡£
2. ͨ¹ýÔÚKubernetes »·¾³ÖвéÕÒÓë ingress-nginx-controller Ïà¹ØµÄ Pod£º
kubectl get po -A | grep ingress-nginx-controller
3.¼ì²éÊÇ·ñ´æÔÚ ingress-nginx-controller ²¿Êð
ʹÓÃÃüÁîkubectl get deployments --all-namespaces | grep ingress-nginx£¬Èç¹ûÊä³öÖаüÂÞ ingress-nginx-controller ²¿Êð£¬ËµÃ÷ ingress-nginx ¿ØÖÆÆ÷Òѱ»°²×°¡£
¼ì²âÓ뻺½â
¹ÜÀíÔ±¿Éͨ¹ý¼ì²é Kubernetes Éó¼ÆÈÕÖ¾ÖÐÊÇ·ñ´æÔÚÈκοÉÒÉµÄ Ingress ¹¤¾ß£¬ÓÈÆäÊÇ°üÂ޻سµ·û ( \r) µÄ×¢½â£¬ÒòΪ»Ø³µ·û£¨\r£©¿ÉÄܱ»ÓÃÓÚ×¢Èë¶ñÒâ´úÂë»òÈƹýijЩÑéÖ¤»úÖÆ¡£Èç¹ûÔÚ Kubernetes Éó¼ÆÈÕÖ¾Öз¢ÏÖ°üÂ޻سµ·û (\r) µÄ×¢½â£¬È·ÈÏÊÇ·ñ´æÔÚ¶ñÒâ»òÒì³£µÄÄÚÈÝ¡£¿ÉÒÔʹÓà kubectl get ingress <ingress-name> -o yaml ÃüÁî¼ì²ìÏêϸµÄÅäÖá£Èç¹ûÈ·ÈÏÓжñÒâ×¢½â»ò²»Äþ¾²µÄÅäÖ㬿ɿ¼ÂÇ£º
l ÔÝʱ¸ôÀëÊÜÓ°ÏìµÄ·þÎñ»òÃüÃû¿Õ¼ä£¬ÒÔ·ÀÖ¹½øÒ»²½¹¥»÷£»
l ɾ³ý»òÐÞ¸´ Ingress£ºÍ¨¹ý kubectl delete ingress <ingress-name> ɾ³ýÊÜÓ°ÏìµÄ Ingress ¹¤¾ß£¬»òÕßÊÖ¶¯±à¼×¢½âÈ¥³ý²»Äþ¾²µÄ×Ö·û¡£ÐÞ¸´ºóµÄ¹¤¾ßÓ¦ÖØÐÂÓ¦ÓÃÖÁ¼¯ÈºÖС£
3.3 ͨÓý¨Òé
l ¶¨ÆÚ¸üÐÂϵͳ²¹¶¡£¬¼õÉÙϵͳ©¶´£¬ÌáÉý·þÎñÆ÷µÄÄþ¾²ÐÔ¡£
l ¼ÓǿϵͳºÍÍøÂçµÄ·ÃÎÊ¿ØÖÆ£¬Ð޸ķÀ»ðǽ¼Æı£¬¹Ø±Õ·ÇÐëÒªµÄÓ¦Óö˿ڻò·þÎñ£¬¼õÉÙ½«Î£ÏÕ·þÎñ£¨ÈçSSH¡¢RDPµÈ£©Ì»Â¶µ½¹«Íø£¬¼õÉÙ¹¥»÷Ãæ¡£
l ʹÓÃÆóÒµ¼¶Äþ¾²²úÎÌáÉýÆóÒµµÄÍøÂçÄþ¾²ÐÔÄÜ¡£
l ¼ÓǿϵͳÓû§ºÍȨÏÞ¹ÜÀí£¬ÆôÓöàÒòËØÈÏÖ¤»úÖƺÍ×îСȨÏÞÔÔò£¬Óû§ºÍÈí¼þȨÏÞÓ¦±£³ÖÔÚ×îµÍÏ޶ȡ£
l ÆôÓÃÇ¿ÃÜÂë¼Æı²¢ÉèÖÃΪ¶¨ÆÚÐ޸ġ£
3.4 ²Î¿¼Á´½Ó
https://groups.google.com/g/kubernetes-security-announce/c/a1__cKjWkfA
https://github.com/kubernetes/kubernetes/issues/126744
ËÄ¡¢°æ±¾ÐÅÏ¢
°æ±¾ | ÈÕÆÚ | ±¸×¢ |
V1.0 | 2024-08-19 | Ê×´ÎÐû²¼ |
Îå¡¢¸½Â¼
5.1 ¶¶È¦Îª¶Ä¶øÉú¼ò½é
¶¶È¦Îª¶Ä¶øÉú½¨Á¢ÓÚ1996Ä꣬ÊÇÓÉÁôÃÀ²©Ê¿ÑÏÍû¼ÑŮʿ´´½¨µÄ¡¢ÓµÓÐÍêÈ«×ÔÖ÷֪ʶ²úȨµÄÐÅÏ¢Äþ¾²¸ß¿Æ¼¼ÆóÒµ¡£ÊǹúÄÚ×î¾ßʵÁ¦µÄÐÅÏ¢Äþ¾²²úÎï¡¢Äþ¾²·þÎñ½â¾ö·½°¸µÄÁ캽ÆóÒµÖ®Ò»¡£
¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°¶¶È¦Îª¶Ä¶øÉú´óÏ㬹«Ë¾Ô±¹¤6000ÓàÈË£¬Ñз¢ÍŶÓ1200ÓàÈË, ¼¼Êõ·þÎñÍŶÓ1300ÓàÈË¡£ÔÚÈ«¹ú¸÷Ê¡¡¢ÊС¢×ÔÖÎÇøÉèÁ¢·ÖÖ§»ú¹¹ÁùÊ®¶à¸ö£¬ÓµÓÐÁýÕÖÈ«¹úµÄÏúÊÛÌåϵ¡¢ÇþµÀÌåϵºÍ¼¼ÊõÖ§³ÖÌåϵ¡£¹«Ë¾ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉîÛÚÖÐС°å¹ÒÅÆÉÏÊС££¨¹ÉƱ´úÂ룺002439£©
¶àÄêÀ´£¬¶¶È¦Îª¶Ä¶øÉúÖÂÁ¦ÓÚÌṩ¾ßÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´ÐµÄÄþ¾²²úÎïºÍ×î¼Ñʵ¼ù·þÎñ£¬×ÊÖú¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄÄþ¾²ÐÔºÍÉú²úЧÄÜ£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢Äþ¾²¹¤ÒµÁì¾üÆ·Åƶø²»Ð¸Å¬Á¦¡£
5.2 ¹ØÓÚ¶¶È¦Îª¶Ä¶øÉú
¶¶È¦Îª¶Ä¶øÉúÄþ¾²Ó¦¼±ÏìÓ¦ÖÐÐÄÒÑÐû²¼1000¶à¸ö©¶´Í¨¸æºÍ·çÏÕÔ¤¾¯£¬ÎÒÃǽ«Á¬Ðø¸ú×ÙÈ«Çò×îеÄÍøÂçÄþ¾²Ê¼þºÍ©¶´£¬ÎªÆóÒµµÄÐÅÏ¢Äþ¾²±£¼Ý»¤º½¡£
¹Ø×¢ÎÒÃÇ£º