무슨 일이 있었나
AstGrep 서비스의 포함 검사는 해결되지 않은 어휘 경로를 사용하므로, 루트 밖을 가리키는 저장소 내부의 심볼릭 링크가 범위 내로 취급됩니다. MCP 구조 도구는 이를 따라 프로젝트 루트 밖의 파일을 읽거나 덮어써 의도된 승인 게이트를 우회합니다.
왜 중요한가
피해자가 저장소를 분석하도록 할 수 있는 공격자는 코드 그래프 RAG 에이전트가 따라가 자격 증명/키/환경 파일을 읽거나 형제 소스를 수정하는 심볼릭 링크를 심을 수 있습니다 — 에이전트 코드 분석 도구에서의 작업공간 탈출 프리미티브입니다.
공격 경로
AstGrepService는 project_root 아래의 파일을 열거하고 should_skip_path에 의존하여 포함 여부를 확인하지만, 검사는 해결되지 않은 어휘 경로에서 작동합니다. 분석된 저장소 내부에 심어진 심볼릭 링크는 구성된 루트 밖의 파일을 참조하면서 범위 내로 보일 수 있습니다; structural_search는 그 내용을 공개하고 dry_run=False로 structural_replace는 링크를 따라가 에이전트 루프 승인 제어 없이 쓰기 가능한 내용을 덮어씁니다.
영향받는 시스템
code-graph-rag < 0.0.589
완화 방안
code-graph-rag 0.0.589로 업그레이드하십시오. 권고: https://github.com/vitali87/code-graph-rag/security/advisories/GHSA-85gg-2gfq-q95m