🇰🇷 한글 설명
djust의 find_handlers_for_template MCP 도구가 지정된 템플릿 디렉토리를 벗어난 절대 경로의 파일을 제한 없이 읽을 수 있는 취약점이 발견되었습니다. 로컬 MCP 클라이언트는 이를 이용해 시스템 내 파일의 존재 여부와 특정 패턴의 문자열 포함 여부를 확인하는 오라클로 악용할 수 있습니다. 이 문제는 1.0.10, 1.1.7, 1.2.4, 1.3.0rc8 버전에서 수정되었습니다.
💡 쉬운 설명
프로그램이 정해진 폴더 안의 파일만 읽어야 하는데, 공격자가 다른 폴더에 있는 파일까지 몰래 엿볼 수 있는 허점이 있습니다. 이를 통해 시스템 내부의 중요한 정보가 특정 규칙에 맞는지 확인하여 정보를 유출할 수 있습니다.
🇺🇸 원문 (English)
djust provides Phoenix LiveView-style reactive server-side rendering for Django with Rust-powered performance. From 0.9.0 until 1.0.10, 1.1.7, 1.2.4, and 1.3.0rc8, the find_handlers_for_template MCP tool in python/djust/mcp/server.py accepts an existing absolute template_path and reads it without restricting the resolved path to the project or configured template directories. A local MCP client can use the tool as a file existence and readability oracle and can obtain substrings that match the tool's dj-click, dj-submit, dj-change, dj-input, dj-keydown, or dj-keyup attribute pattern from files readable by the djust process. The maintainer assessment states that the MCP server communicates over local stdio as the same operating-system user and has no network listener, and the tool does not return arbitrary raw file contents. This issue is fixed in versions 1.0.10, 1.1.7, 1.2.4, and 1.3.0rc8.
📍 영향받는 시스템
djust 0.9.0 ~ 1.0.10, 1.1.7, 1.2.4, 1.3.0rc8 미만 버전
⚔️ 공격 벡터
로컬 MCP 클라이언트를 통한 파일 경로 조작 및 패턴 매칭 기반 정보 유출
🛡️ 대응 방법
djust를 최신 보안 패치가 적용된 버전(1.0.10, 1.1.7, 1.2.4, 1.3.0rc8 이상)으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 취약한 버전 범위에 포함되는지 확인하십시오.
pip show djust | grep Version