🇰🇷 한글 설명
mise 도구에서 task-include 파일을 처리할 때 신뢰 확인(trust_check) 과정을 거치지 않고 Tera 템플릿 엔진의 exec() 함수를 실행하는 취약점이 발견되었습니다. 공격자가 악성 코드가 포함된 task 파일을 포함한 저장소를 배포하면, 사용자가 단순히 태스크 목록을 조회하거나 탭 완성을 시도하는 것만으로도 임의의 명령어가 실행될 수 있습니다.
💡 쉬운 설명
개발 도구인 mise를 사용할 때, 나쁜 의도를 가진 프로젝트 폴더에 들어가서 명령어를 입력하거나 목록만 확인해도 해커의 명령이 자동으로 실행될 수 있는 보안 결함입니다. 사용자가 별도의 승인을 누르기도 전에 공격이 실행된다는 점이 위험합니다.
🇺🇸 원문 (English)
mise manages dev tools like node, python, cmake, and terraform. Prior to 2026.6.4, mise's trust feature gates config files (mise.toml, .tool-versions) through trust_check, but task-include files are loaded on a path that never reaches it. When a directory has a task-include dir (mise-tasks/, .mise/tasks/, …) but no config file, mise falls back to the default includes and renders each task's tera fields — and that tera environment has exec() registered. A {{ exec(command='…') }} in any rendered field runs arbitrary commands the moment the tasks are merely listed. There's no config file to gate on, so no trust prompt ever appears. Read-only commands trigger it: mise tasks, mise task ls, mise run, mise tasks --usage (the query shell completion runs on Tab). The victim only has to cd into a cloned repo and list or tab-complete a task. This vulnerability is fixed in 2026.6.4.
📍 영향받는 시스템
mise versions prior to 2026.6.4
⚔️ 공격 벡터
악성 task-include 파일이 포함된 저장소를 클론한 후, mise tasks 또는 탭 완성을 통해 태스크 목록을 조회할 때 발생
🛡️ 대응 방법
mise를 2026.6.4 버전 이상으로 즉시 업데이트하십시오.
🔧 검증 코드
출력된 버전이 2026.6.4보다 낮으면 취약한 상태이며, 2026.6.4 이상이면 안전합니다.
mise --version | grep -E '^202[0-5]\.'