¡¾·ì϶¹«¸æ¡¿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ÈÕ£¬£¬OG¶«·½Ìü¼¯ÍÅ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 OG¶«·½Ìü¼ò½é
OG¶«·½Ìü³ÉÁ¢ÓÚ1996Ä꣬£¬ÊÇÓÉÁôÃÀ²©Ê¿ÑÏÍû¼ÑŮʿ´´½¨µÄ¡¢¡¢¡¢Õ¼ÓÐÆëÈ«×ÔÖ÷֪ʶ²úȨµÄÐÅÏ¢°²È«¸ß¿Æ¼¼ÆóÒµ¡£ÊǹúÄÚ×î¾ßʵÁ¦µÄÐÅÏ¢°²È«²úÆ·¡¢¡¢¡¢°²È«·þÎñ½â¾ö¹æ»®µÄÁ캽ÆóÒµÖ®Ò»¡£
¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°OG¶«·½Ìü´óÏ㬣¬¹«Ë¾Ô±¹¤6000ÓàÈË£¬£¬Ñз¢ÍŶÓ1200ÓàÈË, ¼¼Êõ·þÎñÍŶÓ1300ÓàÈË¡£ÔÚÈ«¹ú¸÷Ê¡¡¢¡¢¡¢ÊС¢¡¢¡¢×ÔÖÎÇøÉèÁ¢·ÖÖ§»ú¹¹ÁùÊ®¶à¸ö£¬£¬Õ¼Óи²¸ÇÈ«¹úµÄÏúÊÛϵͳ¡¢¡¢¡¢ÇþµÀϵͳºÍ¼¼ÊõÖ§³Öϵͳ¡£¹«Ë¾ÓÚ2010Äê6ÔÂ23ÈÕÔÚÀö½ÖÐС°å¹ÒÅÆÉÏÊС££¨¹ÉƱ´úÂ룺002439£©
¶àÄêÀ´£¬£¬OG¶«·½ÌüÖÂÁ¦ÓÚÌṩӵÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´Ðµİ²È«²úÆ·ºÍ×î¼Ñʵ¼Ê·þÎñ£¬£¬Ô®ÊÖ¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄ°²È«ÐԺͳö²úЧÁ¦£¬£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢°²È«²úÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸ÖÂÁ¦¡£
5.2 ¹ØÓÚOG¶«·½Ìü
OG¶«·½Ìü°²È«Ó¦¼±ÏìÓ¦ÖÐÐÄÒѰ䲼1000¶à¸ö·ì϶¹«¸æÎ¢·çÏÕÔ¤¾¯£¬£¬ÎÒÃǽ«³ÖÐø¸ú×ÙÈ«Çò×îеÄÍøÂ簲ȫÊÂÎñºÍ·ì϶£¬£¬ÎªÆóÒµµÄÐÅÏ¢°²È«±£¼Ý»¤º½¡£
¹Ø×¢ÎÒÃÇ£º



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