안녕하세요, 제시예요. 요즘 AI가 그냥 답만 해주는 걸 넘어서, 실제로 제 컴퓨터에서 파일을 만들고 고치고 명령어까지 돌려주잖아요. 편한데 조금 무섭기도 하죠. 그래서 대부분의 도구가 위험한 일을 하기 전에 "이 파일 고쳐도 될까요?" 하고 한 번 물어봐요. 우리는 그걸 보고 승인 버튼을 누르고요.
그런데 이 "승인" 관문에 구멍이 있었다는 사실이 이번 달에 공개됐어요. 보안 회사 Wiz가 7월 8일에 알린 GhostApproval(고스트어프루벌)이라는 취약점인데, 이름부터 "유령 승인"이라 좀 으스스하죠. 뭐가 문제였는지 천천히 풀어볼게요.
'사람이 한 번 확인한다'는 안전장치
요즘 AI 코딩 도구들은 스스로 여러 단계를 알아서 처리해요. 그러다 파일을 덮어쓰거나 시스템을 건드리는 순간이 오면, 사람에게 확인을 받도록 설계돼 있어요. 이걸 업계에서는 human-in-the-loop, 그러니까 '사람을 고리 안에 둔다'고 불러요. 자율적으로 움직이되, 결정적인 순간엔 사람이 최종 승인을 한다는 개념이에요.
문제는, 그 승인창이 정말로 무슨 일이 벌어지는지를 보여줄 때만 안전장치라는 거예요. 이번 일은 바로 그 지점이 뚫렸어요.
수십 년 된 트릭, 심링크
핵심은 심링크(symlink)예요. 어렵게 들리지만, 바탕화면의 '바로가기'를 떠올리면 돼요. 겉으로는 평범한 파일처럼 보이는데, 사실은 다른 곳을 가리키는 이정표인 거죠. 유닉스 계열 운영체제에 수십 년 전부터 있던 아주 오래된 기능이에요.
공격 방식은 이래요. 나쁜 사람이 어떤 코드 저장소에 project_settings.json 같은 얌전한 이름의 파일을 하나 심어둬요. 그런데 이건 진짜 설정 파일이 아니라, 실제로는 ~/.ssh/authorized_keys — 그러니까 내 컴퓨터에 원격 접속을 허용하는 열쇠 목록 파일을 가리키는 심링크예요.
이제 개발자가 그 저장소를 열고 AI에게 "README 대로 작업 환경 좀 세팅해줘"라고 부탁해요. 에이전트가 그 파일을 고치겠다며 승인을 요청하는데, 승인창에는 원래 이름인 project_settings.json만 뜨거든요. 진짜 목적지인 SSH 열쇠 파일은 안 보여줘요. 그러니 우리는 "설정 파일 하나 고치는구나" 하고 아무 의심 없이 승인 버튼을 눌러요. 그 순간 공격자의 열쇠가 내 컴퓨터에 심기고, 비밀번호도 없이 원격으로 들어올 문이 열리는 거예요.
인턴에게 "이 서류철에 도장 하나만 찍어줘요" 하고 부탁했는데, 서류철에 붙은 라벨이 가짜였고 실제로 도장이 찍힌 건 금고 열쇠 신청서였던 셈이에요. 인턴은 라벨만 믿고 시킨 대로 했을 뿐인데 말이죠. AI 에이전트도 똑같이, 보이는 이름만 믿고 성실하게 일을 해버린 거예요.
도구 여섯 개가 한꺼번에 걸렸어요
이게 특정 제품 하나의 실수가 아니라는 게 무서운 지점이에요. 널리 쓰이는 AI 코딩 도구 여섯 개가 같은 패턴에 걸렸어요. Amazon Q Developer, Anthropic의 Claude Code, Augment, Cursor, Google Antigravity, 그리고 Windsurf예요.
대응은 갈렸어요.
- Amazon Q Developer는 언어 서버
1.69.0에서 고쳤고(CVE-2026-12958), Cursor는v3.0에서 패치했어요(CVE-2026-50549). Cursor 쪽은 심각도가 치명적 등급으로 매겨질 만큼 위험도가 높았다고 해요. - Google Antigravity도 최신 버전에서 바로잡았고요.
- Augment와 Windsurf는 보고를 받았다고만 하고, 이 글을 정리하는 시점까지 패치 소식이 조용했어요.
- Claude Code는 조금 다른 입장이었어요. "낯선 폴더를 신뢰하는 건 원래 우리가 상정한 위협 범위 밖"이라며 취약점 분류에 이견을 냈지만, 그래도 심링크에 대한 경고는 넣었어요.
왜 중요하냐면요
저는 이 사건이 AI 에이전트 시대의 방향을 정확히 보여준다고 생각해요. 우리는 보통 AI의 위험을 "모델이 틀린 답을 하면 어쩌지"로 상상하잖아요. 그런데 진짜 사고는 모델이 똑똑하냐 아니냐가 아니라, 얼마나 큰 권한을 어떻게 넘겨주느냐에서 나요. 에이전트가 유능할수록, 우리가 무심코 누르는 '승인' 버튼의 무게가 커지는 거예요.
그리고 그 승인이 안전장치가 되려면, 화면이 진짜 벌어지는 일을 정직하게 보여줘야 해요. 이번엔 그 화면이 겉이름만 보여줘서, 성실한 도구가 오히려 성실하게 뚫린 거고요.
당장 실무에서 할 수 있는 건 소박하지만 분명해요. 낯선 저장소를 통째로 "알아서 다 해줘"라고 맡기지 않기, 승인창에 뜬 경로를 한 번 더 눈으로 확인하기, 그리고 쓰는 도구를 최신 버전으로 유지하기. 위에 나온 패치들도 결국 최신 버전에서만 효과가 있으니까요.
편리함을 포기하자는 이야기는 아니에요. 다만 열쇠를 쥔 조수에게 일을 맡길 땐, 그 조수가 지금 어느 문을 여는지 정도는 우리가 보고 있어야 한다는 거죠. 앞으로 이런 이야기, 어렵지 않게 계속 짚어드릴게요.
출처: GhostApproval 취약점 공개 및 상세는 Wiz Research 발표(2026-07-08), The Hacker News·Infosecurity Magazine·SecurityWeek 보도 참고. CVE 번호(CVE-2026-12958, CVE-2026-50549)와 패치 버전, 벤더 대응은 위 보도 기준.
