🇰🇷 한글 설명
Jupyter Enterprise Gateway의 특정 버전에서 KERNEL_UID 또는 KERNEL_GID 값을 조작하여 루트(root) 권한으로 커널을 실행할 수 있는 입력 검증 취약점이 발견되었습니다. 이 취약점을 악용하면 컨테이너 탈출을 통해 워커 노드 및 전체 Kubernetes 클러스터를 장악할 위험이 있습니다.
💡 쉬운 설명
사용자가 권한을 속여서 컴퓨터의 가장 높은 관리자 권한(root)을 획득할 수 있는 보안 구멍이 발견되었습니다. 이를 통해 해커가 서버 전체를 제어하거나 다른 데이터에 접근할 수 있습니다.
🇺🇸 원문 (English)
Jupyter Enterprise Gateway launches remote Jupyter Notebook kernels across distributed clusters like Apache Spark, Kubernetes, and Docker Swarm. Versions 2.0.0rc1 and above prior to 3.3.0 have a prohibited UID and GID feature that by default prevents launching kernels with UID or GID 0 (root), and this restriction can be bypassed using a specially crafted KERNEL_UID or KERNEL_GID value. This input validation vulnerability allows running Jupyter kernels as root, which can be dangerous as it allows more attack surface, and may lead to container escapes, compromising the worker node and all workloads running on it. Repeated exploitation can compromise all worker nodes, and thus the entire Kubernetes cluster. It is possible to specify volume mounts, so one vector for a container escape is to use a hostPath R/W volume mount, use this UID/GID bypass to run as root, and then gain code execution in the underlying worker node by creating a crontab entry in the mounted host file system. This issue has been fixed in version 3.0.0.
📍 영향받는 시스템
Jupyter Enterprise Gateway 2.0.0rc1 이상 ~ 3.3.0 미만 버전
⚔️ 공격 벡터
조작된 KERNEL_UID 또는 KERNEL_GID 값을 입력하여 루트 권한으로 커널 실행 및 호스트 파일 시스템 접근
🛡️ 대응 방법
Jupyter Enterprise Gateway를 버전 3.0.0 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 2.0.0rc1 이상 3.3.0 미만인지 확인하여 취약 여부를 판단합니다.
pip show jupyter-enterprise-gateway | grep Version