Jupyter Enterprise Gateway는 Apache Spark, Kubernetes, Docker Swarm과 같은 분산 클러스터에서 원격 Jupyter Notebook 커널을 시작합니다. 3.3.0 이전 버전에서는 서버가 YAML 인식 이스케이프 없이 신뢰할 수 없는 환경 변수(예: KERNEL_XXX)를 Kubernetes 매니페스트에 보간하여 YAML 주입 공격을 활성화합니다. 공격자는 새 필드를 삽입하고, 중요한 필드를 덮어쓰고(예: 마지막 키가 우선하는 securityContext 키 중복), 문서 경계(---)를 삽입할 수 있습니다.
Jupyter Enterprise Gateway는 Apache Spark, Kubernetes, Docker Swarm과 같은 분산 클러스터에서 원격 Jupyter Notebook 커널을 시작합니다. 3.3.0 이전 버전에서는 서버가 YAML 인식 이스케이프 없이 신뢰할 수 없는 환경 변수(예: KERNEL_XXX)를 Kubernetes 매니페스트에 보간하여 YAML 주입 공격을 활성화합니다. 공격자는 새 필드를 삽입하고, 중요한 필드를 덮어쓰며(예: 마지막 키가 우선하는 securityContext 키 복제), 문서 경계(새 문서의 경우 ---, 문서 끝의 경우 ...)를 삽입하여 여러 리소스를 생성할 수 있으며 잠재적으로 권한 있는 포드와 같은 임의 유형을 생성할 수 있습니다. Kubernetes 매니페스트용 Jinja2 템플릿에는 매니페스트를 렌더링할 때 사용되며 모두 YAML 주입을 위한 벡터인 kernel_working_dir과 같은 여러 kernel_xxx 변수가 포함되어 있습니다. 이 문제는 버전 3.3.0에서 수정되었습니다.