Cursor 0day: 저장소의 git.exe를 경고 없이 실행하는 취약점
Cursor 0day: When Full Disclosure Becomes the Only Protection Left
TL;DR Highlight
저장소 루트에 git.exe를 심어두면 Cursor가 경고 없이 실행하고 7개월째 미패치
Who Should Read
Windows에서 Cursor로 외부 저장소를 열어 보는 개발자와 개발 환경 보안을 맡은 팀
Core Mechanics
- 루트의 git.exe를 그냥 실행한다
- Windows에서 Cursor는 프로젝트를 열면 git 바이너리를 여러 위치에서 찾는다.
- 그중에 워크스페이스 자체가 있어서, 저장소 루트의 악성 git.exe가 클릭이나 경고 없이 실행된다.
- 결과는 현재 사용자 권한의 임의 코드 실행이다.
- 프로젝트를 열어둔 동안 계속 반복 실행된다
- 계산기를 git.exe로 이름만 바꿔 넣은 PoC(개념 증명)로 확인했다.
- 프로젝트를 열어두자 계산기 창이 계속 늘어났다.
- Process Monitor 로그에는 git rev-parse --show-toplevel 명령으로 실행된 기록이 남았다.
- 프롬프트 인젝션 없이 재현된다
- 복잡한 공격 체인, 탈옥, 메모리 손상 같은 기법이 필요 없다.
- git.exe가 든 프로젝트를 여는 것만으로 충분하다고 한다.
- 2026년 4월 30일 Cursor 3.2.16(Windows)에서 마지막으로 검증했다.
- 신고 후 7개월 가까이 답이 없었다
- 2025년 12월 15일 발견해 같은 날 신고했다.
- 6개월 넘게, 197개 이상의 새 버전이 나온 뒤에도 최신 테스트 버전에 남아 있다고 한다.
- HackerOne에서 재현 확인과 전달까지 됐지만 이후 업데이트 요청에는 응답이 없었다.
Community Reactions
- 워크스페이스 신뢰 설정이 더 근본 문제라는 의견
- Cursor는 Workspace Trust가 기본 꺼진 채 배포된다는 댓글이 있었다.
- .vscode/tasks.json에 runOn: folderOpen을 넣으면 이미 임의 코드가 실행된다는 지적이다.
- Cursor 버그보다 Windows 동작이라는 의견
- Windows는 PATH보다 현재 디렉터리의 실행 파일을 먼저 찾는다는 댓글이 여럿 있었다.
- Unix PATH에 "."을 넣지 않는 것과 같은 이유이며 에이전트도 마찬가지여야 한다는 의견이다.
- 그래도 "이 디렉터리를 신뢰하나요?" 대화상자는 있어야 한다는 반응이 있었다.
- 심각도가 과장됐다는 반론
- 악성 exe를 이미 사용자 폴더에 심어야 하니 이미 뚫린 상태라는 의견이 있었다.
- npm install도 신뢰 못 할 저장소에서는 똑같이 위험하다는 댓글이 있었다.
- 반대로 에이전트에 git 권한을 주는 환경에서는 공급망 공격 경로가 된다는 우려도 있었다.
- 재현이 안 됐다는 경험과 글 자체에 대한 불만
- 계산기를 git.exe로 복사해 여러 저장소에서 열어 봤더니 실행되지 않았다는 경험이 있었다.
- 보안팀 입장의 댓글은 LLM이 쓴 신고서가 넘쳐 선별이 힘들다고 했다.
- 이 글도 AI가 쓴 느낌이라는 반응이 여러 개 있었다.
How to Apply
- 내 저장소 루트에 git.exe가 있는지 점검하기
- 오늘 Windows 개발 PC의 작업 폴더에서 git.exe를 검색해 본다.
- 예: Get-ChildItem -Path $env:USERPROFILE\source -Recurse -Filter git.exe
- 저장소 안에서 나온 파일은 삭제하거나 격리한다.
- 외부 저장소는 샌드박스에서만 열기
- 출처가 불분명한 저장소는 Windows Sandbox나 VM 안에서 Cursor로 연다.
- 패치 전까지 이 규칙을 팀 온보딩 문서에 적는다.
- 관리 PC에 경로 기반 실행 차단 규칙 넣기
- AppLocker나 Windows App Control에서 repo 루트 경로(예: %USERPROFILE%\source\repos\*\git.exe)의 실행을 거부한다.
- 해시 기반 규칙은 쓰지 않는다.
- Workspace Trust 설정을 직접 확인하기
- Cursor 설정에서 Workspace Trust가 켜져 있는지 확인한다.
- 꺼져 있으면 켜고, 팀 표준 설정으로 배포한다.
Try It
# Windows PowerShell에 붙여넣기: 작업 폴더 안의 의심스러운 git.exe 찾기 (읽기 전용, 삭제 안 함)
$root = "{{작업폴더 경로, 예: $env:USERPROFILE\source\repos}}"
Get-ChildItem -Path $root -Recurse -Filter git.exe -ErrorAction SilentlyContinue |
Select-Object FullName, Length, LastWriteTime
# 이어서 해 볼 것: 나온 파일이 정식 git 설치 경로(C:\Program Files\Git 등)가 아니면 저장소에서 격리하고, 같은 폴더를 AppLocker 경로 규칙의 대상으로 등록해 보기Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓