¡¾·ì϶¹«¸æ¡¿Kubernetes Argo CDȨÏÞÌáÉý·ì϶£¨CVE-2022-29165£©

°ä²¼¹¦·ò 2022-06-01

0x00 ·ì϶¸ÅÊö

CVE   ID

CVE-2022-29165

·¢ÏÖ¹¦·ò

2022-06-01

Àà    ÐÍ

ȨÏÞÌáÉý

µÈ    ¼¶

ÑÏÖØ

Ô¶³ÌÀûÓÃ

ÊÇ

Ó°ÏìÁìÓò


¹¥»÷¸´ÔÓ¶È

µÍ

Óû§½»»¥

ÎÞ

PoC/EXP


ÔÚÒ°ÀûÓÃ


 

0x01 ·ì϶ÏêÇé

Argo CDÊÇÓÃÓÚKubernetesµÄÉêÃ÷ʽGitOps³ÖÐø½»¸¶¹¤¾ß¡£¡£¡£¡£

5ÔÂ18ÈÕ£¬£¬Argo CDÏîÄ¿°ä²¼°²È«²¼¸æ£¬£¬Argo CDÖдæÔÚÒ»¸öȨÏÞÌáÉý·ì϶£¨CVE-2022-29165£©£¬£¬¸Ã·ì϶µÄCVSSÆÀ·ÖΪ10.0¡£¡£¡£¡£

µ±ÆôÓöÔArgo CDʵÀýµÄÄäÃû½Ó¼ûʱ£¨Ä¬ÈϽûÓã©£¬£¬Î´¾­Éí·ÝÑéÖ¤µÄÓû§Äܹ»Í¨¹ýÔÚÒªÇóÖз¢ËÍÌØÖÆµÄJSON Web Token£¨JWT£©À´¼ÙÒâÈκÎArgo CDÓû§»ò½ÇÉ«£¬£¬Ô̺¬ÖÎÀíÔ±Óû§£¬£¬ÎÞÂÛ¸ÃÕÊ»§ÊÇ·ñ±»ÆôÓûò´æÔÚÓÚArgo CDʵÀýÉÏ¡£¡£¡£¡£

³É¹¦ÀûÓô˷ì϶Äܹ»ÔÚ¼¯ÈºÉÏ»ñµÃÓëArgo CDʵÀýÒ»ÑùµÄȨÏÞ£¬£¬ÔÚĬÈÏ×°ÖÃÖÐÊǼ¯ÈºÖÎÀíÔ±¡£¡£¡£¡£Õ⽫¿ÉÄÜ´´½¨¡¢¡¢¡¢°Ñ³ÖºÍɾ³ý¼¯ÈºÉϵÄÈκÎ×ÊÔ´£¬£¬»òÖ´ÐÐÆäËü¶ñÒâ²Ù×÷¡£¡£¡£¡£

 

Ó°ÏìÁìÓò

Argo CD °æ±¾1.4.0 - 2.1.14

Argo CD °æ±¾ 2.2.8

Argo CD °æ±¾ 2.3.3

0x02 °²È«½¨Òé

Ŀǰ´Ë·ì϶ÒѾ­ÐÞ¸´£¬£¬½¨ÒéËùÓÐ Argo CD Óû§¾¡¿ì¸üе½ÒÔÏÂÐÞ¸´°æ±¾£¬£¬ÎÞÂÛÄúµÄʵÀýÖÐÊÇ·ñÆôÓÃÁËÄäÃû½Ó¼û£º

Argo CD °æ±¾ v2.3.4

Argo CD °æ±¾ v2.2.9

Argo CD °æ±¾ v2.1.15

ÏÂÔØÁ´½Ó£º

https://github.com/argoproj/argo-cd/releases

»º½â´ëÊ©£º

½ûÓÃÄäÃû½Ó¼û

ÈôÊÇÁÙʱÎÞ·¨Éý¼¶µ½ÐÞ¸´°æ±¾£¬£¬Äܹ»Ñ¡Ôñ½ûÓÃÄäÃû½Ó¼û£¨ÈôÊÇÒÑÆôÓã©¡£¡£¡£¡£

1.ÈôÒª²éÎÊArgo CDʵÀýÊÇ·ñÆôÓÃÁËÄäÃû½Ó¼û£¬£¬Äܹ»²éÎÊArgo CDµÄ×°Öö¨Ãû¿Õ¼äÖеÄargocd-cm ConfigMap¡£¡£¡£¡£ÏÂÀýÈç¹ûÒѾ­°ÑArgo CD×°Öõ½argocd¶¨Ãû¿Õ¼ä£º

$ kubectl get -n argocd cm argocd-cm -o jsonpath=¡¯{.data.users\.anonymous\.enabled}¡¯

ÈôÊǴ˺ÅÁîµÄÁ˾ÖΪ¿Õ»ò"false"£¬£¬Ôò°µÊ¾Î´ÆôÓöԸÃʵÀýµÄÄäÃû½Ó¼û¡£¡£¡£¡£ÈôÊÇÁ˾ÖÊÇ"true"£¬£¬ÔòÒâζ×ÅʵÀýºÜÈÝÒ×Êܵ½¹¥»÷¡£¡£¡£¡£

2. Òª½ûÓÃÄäÃû½Ó¼û£¬£¬ÇëÐÞ²¹argocd-cmConfigMap ÒÔɾ³ý¸Ãusers.anonymous.enabled×ֶλò½«´Ë×Ö¶ÎÉèÖÃΪ"false"£º

A£®½«×Ö¶ÎÉèÖÃΪ"false"£º

$ kubectl patch -n argocd cm argocd-cm --type=json -p='[{"op":"add", "path":"/data/users.anonymous.enabled", "value":"false"}]'

B£®Ò²Äܹ»Ñ¡ÔñÆëȫɾ³ý¸Ã×ֶΣ¬£¬´Ó¶ø½ûÓÃÄäÃû½Ó¼û£¬£¬ÓÉÓÚĬÈÏֵΪfalse£º

$ kubectl patch -n argocd cm argocd-cm --type=json -p='[{"op":"remove", "path":"/data/users.anonymous.enabled"}]'

 

0x03 ²Î¿¼Á´½Ó

https://github.com/argoproj/argo-cd/security/advisories/GHSA-r642-gv9p-2wjj

https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/#anonymous-access

https://latesthackingnews.com/2022/05/31/serious-argo-cd-vulnerability-could-allow-admin-access-to-the-attackers/

 

0x04 °æ±¾ÐÅÏ¢

°æ±¾

ÈÕÆÚ

Åú¸ÄÄÚÈÝ

V1.0

2022-06-01

³õ´Î°ä²¼

 

0x05 ¸½Â¼

OG¶«·½Ìü¼ò½é

OG¶«·½Ìü¹«Ë¾³ÉÁ¢ÓÚ1996Ä꣬£¬²¢ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉî½»ËùÖÐС°åÕýʽ¹ÒÅÆÉÏÊУ¬£¬ÊǹúÄÚ¼«¾ßʵÁ¦µÄ¡¢¡¢¡¢Õ¼ÓÐÆëÈ«×ÔÖ÷֪ʶ²úȨµÄÍøÂ簲ȫ²úÆ·¡¢¡¢¡¢¿ÉÐŰ²È«ÖÎÀíÆ½Ì¨¡¢¡¢¡¢°²È«·þÎñÓë½â¾ö¹æ»®µÄ×ÛºÏÌṩÉÌ¡£¡£¡£¡£

¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°£¬£¬ÔÚÈ«¹ú¸÷Ê¡¡¢¡¢¡¢ÊС¢¡¢¡¢×ÔÖÎÇøÉèÓзÖÖ§»ú¹¹£¬£¬Õ¼Óи²¸ÇÈ«¹úµÄÇþµÀϵͳºÍ¼¼ÊõÖ§³ÖÖÐÐÄ£¬£¬²¢ÔÚ±±¾©¡¢¡¢¡¢ÉϺ£¡£¡¢¡¢¡¢³É¶¼¡¢¡¢¡¢ÕÑͨ¡¢¡¢¡¢³¤É³¡¢¡¢¡¢¾£ÃÅµÈ¶àµØÉèÓÐÑз¢ÖÐÐÄ¡£¡£¡£¡£

¶àÄêÀ´£¬£¬OG¶«·½ÌüÖÂÁ¦ÓÚÌṩӵÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´Ðµİ²È«²úÆ·ºÍ×î¼Ñʵ¼Ê·þÎñ£¬£¬Ô®ÊÖ¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄ°²È«ÐԺͳö²úЧÁ¦£¬£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢°²È«²úÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸ÖÂÁ¦¡£¡£¡£¡£


¹ØÓÚOG¶«·½Ìü

OG¶«·½Ìü°²È«Ó¦¼±ÏìÓ¦ÖÐÐÄÖØÒªÕë¶ÔÖØÒª°²È«·ì϶µÄÔ¤¾¯¡¢¡¢¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвµý±¨ºÍ°²È«»ã±¨¡£¡£¡£¡£

¹Ø×¢ÒÔϹ«¼ÒºÅ£¬£¬»ñȡȫÇò×îа²È«×ÊѶ£º

image.png