🇰🇷 한글 설명
Volcano는 쿠버네티스 네이티브 배치 스케줄링 시스템으로, 1.11.2 이전 버전에서 Elastic 서비스나 extender 플러그인이 손상될 경우 스케줄러가 거부 서비스(DoS) 공격을 받습니다. 공격자는 스케줄러와 분리된 노드/파드에 배포된 취약한 서비스를 손상시켜 보안 경계를 우회할 수 있으며, 이로 인해 스케줄러가 메모리 부족으로 충돌하거나 무한정 동결되어 다른 사용자와 워크로드의 서비스가 중단됩니다.
💡 쉬운 설명
Volcano라는 쿠버네티스 스케줄러 소프트웨어에 문제가 있어서 특정 부분이 해킹되면 전체 스케줄러가 멈출 수 있습니다. 스케줄러가 메모리를 무한정 소비하도록 강제되어 시스템이 충돌하게 됩니다.
🇺🇸 원문 (English)
Volcano is a Kubernetes-native batch scheduling system. Prior to versions 1.11.2, 1.10.2, 1.9.1, 1.11.0-network-topology-preview.3, and 1.12.0-alpha.2, attacker compromise of either the Elastic service or the extender plugin can cause denial of service of the scheduler. This is a privilege escalation, because Volcano users may run their Elastic service and extender plugins in separate pods or nodes from the scheduler. In the Kubernetes security model, node isolation is a security boundary, and as such an attacker is able to cross that boundary in Volcano's case if they have compromised either the vulnerable services or the pod/node in which they are deployed. The scheduler will become unavailable to other users and workloads in the cluster. The scheduler will either crash with an unrecoverable OOM panic or freeze while consuming excessive amounts of memory. This issue has been patched in versions 1.11.2, 1.10.2, 1.9.1, 1.11.0-network-topology-preview.3, and 1.12.0-alpha.2.
📍 영향받는 시스템
Volcano 1.11.2 미만 (1.9.0~1.11.1, 1.10.0~1.10.1), 1.11.0-network-topology-preview.3 미만
⚔️ 공격 벡터
Elastic 서비스 또는 extender 플러그인 손상을 통한 악의적 메모리 사용 유도로 스케줄러 거부 서비스
🛡️ 대응 방법
Volcano를 1.11.2, 1.10.2, 1.9.1, 1.11.0-network-topology-preview.3, 1.12.0-alpha.2 이상으로 업그레이드
🔧 검증 코드
Volcano 스케줄러 현재 버전을 확인하여 1.11.2 이상이면 안전, 미만이면 취약함
kubectl get deployment -n volcano-system volcano-scheduler -o jsonpath='{.spec.template.spec.containers[0].image}' | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+'