¡¾·ì϶¹«¸æ¡¿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 ¸½Â¼

GA»Æ½ð¼×¼ò½é

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

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

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


¹ØÓÚGA»Æ½ð¼×

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

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

image.png