¡¾Â©¶´Í¨¸æ¡¿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¶à¸ö©¶´Í¨¸æºÍ·çÏÕÔ¤¾¯£¬ÎÒÃǽ«Á¬Ðø¸ú×ÙÈ«Çò×îеÄÍøÂçÄþ¾²Ê¼þºÍ©¶´£¬ÎªÆóÒµµÄÐÅÏ¢Äþ¾²±£¼Ý»¤º½ ¡£

¹Ø×¢ÎÒÃÇ£º

image.png