🇰🇷 한글 설명
BentoML의 Dockerfile 템플릿에서 docker.base_image 값을 검증 없이 직접 삽입하는 템플릿 인젝션 취약점입니다. 공격자가 멀티라인 값을 사용해 임의의 Dockerfile 지시자(RUN 등)를 주입하면 docker build 실행 중 호스트에서 임의 명령어가 실행됩니다. 1.4.39 이상으로 업그레이드하면 수정됩니다.
💡 쉬운 설명
BentoML이 Docker 설정 파일을 처리할 때 입력값을 확인하지 않아, 악의적 파일에 숨겨진 명령어를 삽입할 수 있습니다. 컨테이너 생성 시 이 명령어가 실제로 실행되어 공격자가 호스트를 제어할 수 있습니다.
🇺🇸 원문 (English)
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Prior to 1.4.39, src/bentoml/_internal/container/frontend/dockerfile/templates/base_v2.j2 interpolates docker.base_image raw with no escaping, newline filtering, or validation. A malicious bento.yaml with a multi-line docker.base_image value smuggles arbitrary Dockerfile directives into the generated Dockerfile, and bentoml containerize then runs docker build which executes the injected RUN directives on the victim host. This vulnerability is fixed in 1.4.39.
📍 영향받는 시스템
BentoML < 1.4.39
⚔️ 공격 벡터
멀티라인 docker.base_image 값이 포함된 악성 bento.yaml 파일을 통한 Dockerfile 지시자 주입
🛡️ 대응 방법
BentoML을 1.4.39 이상으로 업그레이드
🔧 검증 코드
Safe가 출력되면 패치된 버전 설치됨, Vulnerable이 출력되면 즉시 업그레이드 필요
pip show bentoml | grep Version | awk '{print $2}' | awk -F. '{if($1==1 && $2==4 && $3>=39 || $1>1) print "Safe"; else print "Vulnerable"}'