🇰🇷 한글 설명
Helm 3.10.3 미만 버전의 chartutil 패키지에서 NULL 포인터 역참조로 인한 세그멘테이션 오류가 발생할 수 있습니다. 특정 JSON 스키마 파일을 파싱할 때 배열 데이터 구조 생성 과정에서 메모리 위반이 발생하여 서비스 거부(DoS) 상태에 빠질 수 있습니다.
💡 쉬운 설명
잘못 만들어진 설정 파일을 읽을 때 프로그램이 갑자기 멈추거나 꺼지는 문제입니다. 공격자가 특수하게 제작된 파일을 사용하게 유도하면 Helm 도구를 사용할 수 없게 만들 수 있습니다.
🇺🇸 원문 (English)
Helm is a tool for managing Charts, pre-configured Kubernetes resources. Versions prior to 3.10.3 are subject to NULL Pointer Dereference in the_chartutil_ package that can cause a segmentation violation. The _chartutil_ package contains a parser that loads a JSON Schema validation file. For example, the Helm client when rendering a chart will validate its values with the schema file. The _chartutil_ package parses the schema file and loads it into structures Go can work with. Some schema files can cause array data structures to be created causing a memory violation. Applications that use the _chartutil_ package in the Helm SDK to parse a schema file can suffer a Denial of Service when that input causes a panic that cannot be recovered from. Helm is not a long running service so the panic will not affect future uses of the Helm client. This issue has been patched in 3.10.3. SDK users can validate schema files that are correctly formatted before passing them to the _chartutil_ functions.
📍 영향받는 시스템
Helm versions prior to 3.10.3
⚔️ 공격 벡터
악의적으로 조작된 JSON 스키마 파일을 Helm 클라이언트나 SDK를 통해 파싱하도록 유도
🛡️ 대응 방법
Helm을 3.10.3 이상 버전으로 업데이트하거나, SDK 사용 시 스키마 파일의 형식을 사전에 검증
🔧 검증 코드
출력된 버전 번호가 v3.10.3 미만인지 확인하여 취약 여부를 판단합니다.
helm version --short 2>/dev/null | grep -E 'v[0-9]+\.[0-9]+\.[0-9]+' | awk '{print $1}'