🇰🇷 한글 설명
KubeEdge의 ConfigUpdateJob 처리 과정에서 인증된 사용자가 제어하는 updateFields 값이 keadm 명령어와 결합되어 시스템 셸을 통해 실행되는 취약점이 발견되었습니다. ConfigUpdateJob 리소스를 생성하거나 수정할 수 있는 권한을 가진 사용자는 셸 메타문자를 삽입하여 등록된 에지 노드에서 임의의 명령어를 실행할 수 있습니다.
💡 쉬운 설명
KubeEdge를 사용하는 환경에서 권한이 있는 사용자가 특수하게 조작된 명령어를 입력하면, 에지 장치에서 해커가 원하는 명령을 마음대로 실행할 수 있는 보안 결함입니다. 이는 장치의 제어권을 탈취당할 수 있는 위험한 상태를 만듭니다.
🇺🇸 원문 (English)
KubeEdge is an open source system for extending native containerized application orchestration capabilities to hosts at Edge. From 1.21.0 until 1.21.2, 1.22.2, and 1.23.1, ConfigUpdateJob processing in edge/pkg/taskmanager/actions/configupdatejob.go concatenates authenticated user-controlled updateFields values into the keadm config-update command and executes it through a system shell. A user with permission to create or modify ConfigUpdateJob resources can include shell metacharacters in the complete --set value and cause arbitrary commands to execute on an enrolled target edge node with the privileges of the KubeEdge process handling the job. This issue is fixed in versions 1.21.2, 1.22.2, and 1.23.1.
📍 영향받는 시스템
KubeEdge 1.21.0 ~ 1.21.2, 1.22.2, 1.23.1 미만 버전
⚔️ 공격 벡터
ConfigUpdateJob 리소스의 updateFields 값에 셸 메타문자를 포함시켜 명령어를 주입하는 방식
🛡️ 대응 방법
KubeEdge를 수정된 버전인 1.21.2, 1.22.2 또는 1.23.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 이미지 태그 버전이 취약한 버전 범위(1.21.0-1.21.1, 1.22.2 미만, 1.23.1 미만)에 해당하는지 확인합니다.
kubectl get pods -A -o jsonpath='{.items[*].spec.containers[*].image}' | grep -E 'kubeedge:[0-9]+\.[0-9]+\.[0-9]+'