🇰🇷 한글 설명
JupyterLab의 Git 확장에서 쉘 명령어 주입 취약점으로, 악의적인 이름의 Git 저장소 디렉토리(쉘 명령어 치환 문자열 포함)가 있을 때 사용자가 Git 메뉴에서 터미널을 열면 공격자의 명령어가 무단으로 실행됩니다. 0.51.1 버전에서 수정되었습니다.
💡 쉬운 설명
JupyterLab에서 Git 저장소를 터미널로 열 때, 폴더 이름에 숨겨진 명령어가 있으면 자동으로 실행되는 문제입니다. 사용자가 모르게 악의적인 명령어가 실행될 수 있습니다.
🇺🇸 원문 (English)
jupyterlab-git is a JupyterLab extension for version control using Git. On many platforms, a third party can create a Git repository under a name that includes a shell command substitution string in the syntax $(<command>). These directory names are allowed in macOS and a majority of Linux distributions. If a user starts jupyter-lab in a parent directory of this inappropriately-named Git repository, opens it, and clicks "Git > Open Git Repository in Terminal" from the menu bar, then the injected command <command> is run in the user's shell without the user's permission. This issue is occurring because when that menu entry is clicked, jupyterlab-git opens the terminal and runs cd <git-repo-path> through the shell to set the current directory. Doing so runs any command substitution strings present in the directory name, which leads to the command injection issue described here. A previous patch provided an incomplete fix. This vulnerability is fixed in 0.51.1.
📍 영향받는 시스템
jupyterlab-git 0.51.0 이전 버전 (macOS, Linux)
⚔️ 공격 벡터
쉘 명령어 치환 문자열(예: $(<command>))을 포함한 Git 저장소 디렉토리명 생성 후 사용자가 Git > Open Git Repository in Terminal 선택시 실행
🛡️ 대응 방법
jupyterlab-git을 0.51.1 이상으로 업데이트
🔧 검증 코드
Version: 0.51.1 이상이면 안전하고, 0.51.0 이하면 취약함
pip show jupyterlab-git 2>/dev/null | grep -E 'Version|version' || conda list jupyterlab-git 2>/dev/null | grep jupyterlab-git