AI 뉴스 · 코딩 에이전트 보안
Plugin4Shell, 플러그인을 고정해도 확인이 필요한 이유
Air Security가 공개한 플러그인 버전 고정 우회 취약점입니다. Claude Code·Codex 수정 버전과 GitHub·외부 저장소의 노출 조건, 제품별 대응 현황을 구분합니다.
이 글에서 다룰 내용
연구 공개의 의미, SHA 고정 검증 문제, 저장소·자동 업데이트 조건, 제품별 패치 상태, 사용 전 점검 항목
Plugin4Shell, 무엇이 공개됐나
Air Security가 2026년 9월 17일 Plugin4Shell 연구를 공개했습니다. 대상은 Claude Code, OpenAI Codex, GitHub Copilot, Gemini CLI의 플러그인 SHA 고정 검증 문제입니다. AI 코딩 에이전트가 확장 기능을 내려받는 과정에서 발견된 빈틈입니다.
연구팀은 5월에 문제를 발견하고 6월에 각 벤더에 전달했습니다. 일부 수정은 공개 전에 이뤄졌습니다. 공개일을 공격 발생일이나 패치 출시일로 읽어서는 안 됩니다.
플러그인 공급망 보안 문제로, 모델 성능이나 프롬프트 인젝션과 구분됩니다. The Hacker News의 9월 18일 확인 기준으로 실공격에 악용된 징후는 없었습니다.
SHA 고정을 했는데 다른 코드가 실행되는 이유
SHA 고정은 플러그인을 검토한 시점의 커밋 식별자로 버전을 묶는 방식입니다. 저장소에 새 코드가 올라와도 검토한 코드만 사용하려는 장치입니다.
하지만 요청한 식별자를 적어두는 것과 실제로 받은 코드를 확인하는 것은 다릅니다. 특정 Git 호스팅에서는 커밋 해시처럼 보이는 브랜치 이름을 허용해 요청한 커밋 대신 다른 코드가 선택될 수 있습니다.
공격자가 플러그인 저장소를 통제한다는 조건이 필요합니다. 공격자가 직접 운영하거나 탈취한 저장소에서 이런 이름을 이용하고 에이전트가 내려받은 코드의 커밋을 대조하지 않으면 버전 고정을 우회할 수 있다는 설명입니다.
플러그인은 이용자 권한으로 실행됩니다. 해당 이용자의 파일, 저장된 자격증명, 접속 가능한 시스템이 위험해질 수 있지만 이 취약점이 새로운 관리자 권한까지 부여한다는 뜻은 아닙니다.
GitHub와 외부 마켓은 조건이 다릅니다
GitHub는 커밋 해시 같은 브랜치·태그 이름을 차단합니다. The Hacker News는 이 때문에 Claude Code·Codex·Copilot의 GitHub 저장소 플러그인이 해당 브랜치명 공격 경로에는 노출되지 않는다고 설명했습니다. 모든 플러그인 보안 문제가 사라진다는 뜻은 아닙니다.
반면 Bitbucket이나 자체 Git 서버처럼 해당 이름을 허용하는 환경은 구분해야 합니다. 같은 에이전트를 사용하더라도 플러그인의 실제 코드 저장소가 어디에 있는지에 따라 조건이 달라집니다.
9월 18일 보도에서 확인한 Claude Code·Copilot 기본 카탈로그와 Anthropic 커뮤니티 카탈로그의 플러그인은 GitHub 저장소를 가리켰습니다. 마켓 이름만 보지 말고 연결된 저장소 호스트까지 확인하는 이유입니다.
자동 업데이트 설정도 중요합니다. 연구진은 취약한 경로에서 자동 업데이트가 켜져 있으면 추가 클릭 없이 코드가 바뀔 수 있다고 설명했습니다. 다만 기본 마켓의 자동 업데이트와 외부 마켓의 꺼짐·선택 설정은 다르므로 모든 마켓이 기본적으로 자동 갱신된다고 해석하면 안 됩니다.
Gemini CLI에는 별도 경로가 있습니다. Git이 가져온 대상을 기록할 때 사용하는 이름인 FETCH_HEAD를 브랜치명으로 악용하는 방식입니다. 따라서 Gemini CLI는 GitHub에 호스팅됐다는 이유만으로 이 문제를 피한다고 확인되지 않았습니다.
제품별 패치, 확인 근거까지 구분해야 합니다
아래 상태는 연구 공개와 9월 18일 보도 기준입니다. 이후 변경 여부는 각 제품의 공식 공지를 다시 확인해야 합니다.
Claude Code는 Air 연구진이 2.1.179에서 수정됐다고 설명했습니다. 다만 해당 릴리스 설명에는 이 보안 수정이 명시돼 있지 않아 연구진의 확인과 공식 릴리스 기록을 구분해 읽어야 합니다.
Codex 0.146.0 수정은 OpenAI 공식 PR 34644와 릴리스 변경 이력에서 확인됩니다. 핵심은 실제 HEAD가 가리키는 커밋과 요청한 SHA가 다르면 거부하는 검증입니다. 릴리스 게시일은 7월 29일이며 Air가 수정을 확인한 8월 12일과는 다릅니다.
GitHub Copilot은 연구진 설명상 당시 패치가 제공되지 않았습니다. 여기서 다루는 범위는 해당 플러그인 설치 경로이며 모든 Microsoft Copilot 제품이 같은 영향을 받는다고 확대할 근거는 없습니다.
Gemini CLI에 대해 Air는 패치 계획이 없고 Antigravity로 이전을 권고한다고 설명했습니다. 한편 The Hacker News는 Google의 기업용 Gemini CLI 접근이 업데이트와 함께 유지된다고 보도했습니다. 기업용 업데이트에 이 취약점 수정이 포함되는지는 확인되지 않았으므로 모든 Gemini가 영구적으로 무방비라고 단정할 수 없습니다.
사용자는 무엇부터 점검하면 될까
다음은 보도 내용을 바탕으로 한 일반적인 대응 권고입니다. 설치 버전과 플러그인 목록을 확인하고 각 플러그인의 출처와 저장소 호스트, 외부 마켓 자동 업데이트 설정을 함께 살펴보세요.
수정이 제공된 제품은 수정 포함 버전으로 업데이트해야 합니다. 사용하지 않는 플러그인을 제거하고 에이전트가 접근하는 파일·자격증명·시스템 권한을 필요한 범위로 줄이는 것도 권장합니다.
팀에서 플러그인을 검토한다면 SHA 고정만으로 검증을 끝내지 않는 것이 중요합니다. 검토한 커밋을 기록하는 절차와 실제 설치된 코드가 그 커밋인지 확인하는 절차가 함께 있어야 합니다.
업데이트가 이미 바뀐 악성 플러그인까지 찾아 삭제해준다는 근거는 없습니다. 의심스러운 변경이 있는 환경은 설치된 코드와 접근 기록 등을 별도로 점검해야 하며 이번 공개만으로 특정 플러그인이 감염됐다고 추정해서는 안 됩니다.
한 줄 요약: Plugin4Shell 대응은 버전 고정 여부뿐 아니라 실제 코드의 일치 검증, 저장소 호스트, 제품별 수정 상태를 함께 확인하는 데서 시작합니다.
참고 출처
- Air Security 연구 원문 — 9월 17일 공개
- The Hacker News — 영향 조건과 대응 현황
- OpenAI Codex 공식 수정 내역
- OpenAI Codex 0.146.0 공식 릴리스
- Google News RSS에서 보도 확인하기
연구 공개일은 2026년 9월 17일입니다. 영향 조건과 패치 상태는 연구진 및 9월 18일 The Hacker News 보도 기준이며, Codex 수정은 OpenAI 공식 저장소와 대조했습니다.
