# OpenCode에서 인증되지 않은 원격 코드 실행 취약점 발견

> Clean Markdown view of GeekNews topic #25788. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=25788](https://news.hada.io/topic?id=25788)
- GeekNews Markdown: [https://news.hada.io/topic/25788.md](https://news.hada.io/topic/25788.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-01-13T20:33:19+09:00
- Updated: 2026-01-13T20:33:19+09:00
- Original source: [cy.md](https://cy.md/opencode-rce/)
- Points: 3
- Comments: 1

## Topic Body

- **OpenCode**의 구버전에서 인증 없이 임의 코드를 실행할 수 있는 **심각한 원격 코드 실행 취약점**이 발견됨  
- v1.1.10 이전 버전은 자동으로 **HTTP 서버를 실행**하며, 이 서버는 인증 절차 없이 **임의 명령 실행·파일 읽기·터미널 세션 생성**을 허용함  
- v1.0.216 이전에는 **웹사이트 방문만으로도** 사용자의 로컬 환경에서 코드가 실행될 수 있었음  
- 최신 버전(v1.1.10)에서는 서버가 기본적으로 비활성화되었지만, **활성화 시 여전히 인증이 없음**  
- 이 취약점은 **CVE-2026-22812**로 등록되었으며, 개발자와 사용자는 즉시 업데이트 및 설정 점검이 필요함  

---
### 취약점 개요
- OpenCode는 오픈소스 **AI 코딩 어시스턴트**로, v1.1.10 이전에는 실행 시 자동으로 **HTTP 서버(기본 포트 4096+)** 를 시작함  
  - 서버는 `POST /session/:id/shell`, `POST /pty`, `GET /file/content` 등의 엔드포인트를 제공  
  - 인증 절차가 없어 연결 가능한 모든 클라이언트가 **사용자 권한으로 코드 실행** 가능  
- 서버 실행 시 사용자에게 **시각적 표시가 없음**, 노출 여부를 인지하기 어려움  
- CORS 정책이 `*.opencode.ai`로 하드코딩되어 있어, **opencode.ai 또는 하위 도메인**에서 제공되는 페이지가 서버 API에 접근 가능  
  - 해당 도메인이 침해되거나 XSS 취약점이 존재할 경우, 서버 활성화 상태의 모든 사용자가 공격 대상이 될 수 있음  

### 공격 벡터
- v1.0.216 이전: **임의 웹사이트**가 OpenCode 실행 중인 사용자의 로컬 머신에서 코드 실행 가능  
- v1.1.10 이전: **로컬 프로세스나 localhost 페이지**가 인증 없이 코드 실행 가능  
- 모든 버전에서 서버가 활성화된 경우:
  - **로컬 프로세스** 및 **localhost 페이지**가 인증 없이 코드 실행 가능  
  - `--mdns` 플래그 사용 시 **로컬 네트워크 내 모든 장치**가 접근 가능  
  - **서버 실행 여부 표시 없음**, 사용자가 노출 상태를 인지하지 못함  
  - **opencode.ai 도메인** 또는 하위 도메인에서 코드 실행 가능  

### 공격 예시 (Proof of Concept)
- **로컬 공격**: 서버가 실행 중일 때, 로컬 프로세스가 `curl` 명령으로 세션 생성 후 `id > /tmp/pwned.txt` 명령 실행 가능  
- **브라우저 기반 공격**(v1.0.216 이전): 웹페이지에서 `fetch` 요청을 통해 로컬 서버에 명령을 전달, 원격 스크립트를 다운로드·실행 가능  
  - Firefox에서 동작 확인, Chrome은 로컬 네트워크 접근 보호로 사용자 확인창 표시 가능  

### 사용자 대응 방안
- `opencode --version`으로 버전 확인 후 **v1.1.10 이상으로 업데이트**  
- 설정 파일에서 `server.port` 또는 `server.hostname` 항목이 활성화되어 있는지 확인  
- `--mdns` 플래그 사용 금지 (0.0.0.0에 바인딩되어 네트워크 전체 노출)  
- 서버를 반드시 사용해야 하는 경우, **opencode.ai 및 하위 도메인 접속 금지**  
- 서버 활성화 시 **로컬 프로세스가 인증 없이 접근 가능**함을 인지해야 함  

### 공개 일정
- 2025-11-17: 이메일로 최초 보고, **응답 없음**  
- 2025-12-27: GitHub Security Advisory 제출, **응답 없음**  
- 2025-12-29: 다른 사용자가 공개 보고  
- 2025-12-30: v1.0.216에서 **CORS 제한** 적용  
- 2026-01-09: v1.1.10에서 **서버 기본 비활성화**  
- 2026-01-11: **전체 공개**  

### 권장 조치
- CORS를 최소한의 도메인으로 제한 (v1.0.216에서 적용)  
- 서버 기본 비활성화 (v1.1.10에서 적용)  
- 모든 서버 요청에 **인증 절차 추가**  
- 서버 실행 시 사용자에게 **명확한 표시 제공**  
- `--mdns` 옵션이 0.0.0.0에 바인딩됨을 문서에 명시  
- 네트워크 통신 시 **TLS 적용**  
- GitHub Security Advisory 및 CVE-2026-22812 공식 게시  
- 보안 보고용 이메일 및 GHSA 알림 **모니터링 강화**  
- OpenCode 유지보수자, opencode.ai, 사용자 간 **신뢰 관계 명확화**  

### 참고
- CVE: **CVE-2026-22812**  
- 영향받는 패키지: npm `opencode-ai`  
- 최신 정보 및 문의: [cy.md](https://cy.md/)

## Comments



### Comment 49174

- Author: neo
- Created: 2026-01-13T20:33:19+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=46581095) 
- 유지관리자로서 이번 **보안 리포트 대응**을 제대로 못한 점을 인정함  
  사용량이 급격히 늘어나면서 이슈가 폭주했고, 이번 주에 전문가들과 만나 **버그 바운티 프로그램**과 보안 감사를 추진할 계획임
  - 버그 바운티나 감사에 돈을 쓰기보다는 **조직 재정비와 직원 교육**에 투자해야 함  
    모든 팀원이 [OWASP Insecure Design 가이드](https://owasp.org/Top10/2025/A06_2025-Insecure_Design/)를 이해하고 실천하는 게 더 중요함
  - 처음엔 긍정적으로 봤지만, **취약점 제보자들이 여러 번 연락했는데도 답이 없었다는 점**이 걱정됨  
    OpenCode가 유명한 오픈소스 코딩 에이전트인 만큼, 이미 악용됐을 가능성도 있음  
    지금이라도 gVisor 같은 **샌드박스 환경**에서 모델을 돌리는 게 필요하다고 생각함  
    빠르게 대응하지 않으면 더 많은 RCE 취약점을 노리는 공격자가 생길 수 있음
  - 프로젝트가 너무 빠르게 성장하면서 **조직 관리**가 코드 개발보다 더 중요한 시점에 온 것 같음  
    혹시 **아나키즘식 조직 운영 원칙** 같은 것도 참고하고 있는지 궁금함
  - 그냥 Claude에게 보안 문제를 고치라고 하면 되는 거 아님?
  - 솔직하게 상황을 공유하고 책임을 지려는 모습이 보기 좋음. 쉽지 않은 일인데 감사함

- 많은 사람들이 OpenCode 같은 도구를 **로컬 환경에서 권한 분리 없이** 실행하고 있음  
  플러그인들도 기본적으로 무제한 접근을 전제로 설계되어 있고, 리소스 사용량도 많음  
  최소한 **dev-container나 VM** 안에서 실행하고, SSHFS나 Samba로 필요한 파일만 연결하는 게 좋음  
  귀찮다면 월 5달러짜리 VPS를 써도 됨
  - dev-container나 VM 설정 방법을 구체적으로 알려줄 수 있는지 궁금함
  - Claude는 실행할 때마다 **권한 요청**을 하니 그 점은 조금 더 안전함
  - AI 샌드박스로는 fly.io의 [sprites.dev](https://sprites.dev/)가 꽤 괜찮음  
    서버를 qemu로 돌릴 땐 [quickemu](https://github.com/quickemu-project/quickemu)를 추천함  
    zed의 SSH remote 기능도 유용해서 Claude Code나 OpenCode를 함께 쓸 수 있음

- CORS 수정으로 외부 웹사이트의 악용은 막았지만, 근본적으로 **localhost에서 코드 실행이 가능한 구조**가 문제임  
  Neovim은 기본적으로 **도메인 소켓**을 사용하고, VS Code의 SSH 데몬은 인증 절차가 있음  
  인증 없이 클라이언트 입력을 실행하는 로컬 서버는 **LCE(Local Code Execution)** 취약점이며,  
  브라우저 요청을 통해 접근 가능해지면 **RCE(Remote Code Execution)** 로 확대됨

- 인증 없이 RCE가 가능한 HTTP 엔드포인트를 CLI 도구에 넣고, 거기에 **CORS 우회**까지 추가했다니 충격적임  
  - AI 연구소들이 **튜토리얼 코드로 모델을 학습시키는 걸 멈춰야** 할 듯함  
  - 서버가 이렇게 열려 있는데 CORS 정책이 “*”이 아니었던 게 오히려 놀라움  
  - “그냥 분위기(vibe)로 만든 코드” 같다는 반응도 있음

- **취약점 공개 일정**이 문제임  
  2025-11-17에 보고됐는데, 여러 차례 연락에도 응답이 없었음  
  - 지금은 개발자들이 진지하게 대응하려는 것 같음  
    [GitHub 이슈 코멘트](https://github.com/anomalyco/opencode/issues/6355#issuecomment-3740105995) 참고  
  - “요즘은 다 vibe coding 중이라 보안 이슈는 bad vibes”라는 농담 섞인 반응도 있음

- 서버가 기본적으로 꺼져 있다 해도, 켜지면 여전히 심각함  
  localhost에서 아무 웹페이지나 **코드 실행이 가능**하고, 인증 없이 로컬 프로세스도 실행 가능함  
  사용자에게 서버 실행 여부를 알려주는 표시도 없음  
  TUI 앱은 일반적으로 이런 일을 하지 않기 때문에 신뢰받는데, 이번 일은 그 신뢰를 **심하게 훼손**함  
  - 왜 하필 TUI 앱이 문제냐는 질문도 있었음  
  - 대안으로는 Factory의 **Droid**가 괜찮다는 의견도 있음

- OpenCode가 **YC(와이콤비네이터)** 의 지원을 받는다는 점이 놀라움  
  YC라면 더 나은 보안 문화를 장려할 줄 알았음  
  - YC는 결국 **돈이 전부**라는 냉소적인 반응도 있었음  
  - 예전에 YC 출신 Flock이 **비밀번호를 53번 하드코딩**한 사례도 있음  
    관련 내용은 [이 댓글](https://news.ycombinator.com/item?id=46555807) 참고  
  - 게다가 OpenCode가 **Auth provider 제품**도 만든다는 점이 아이러니함

- OpenCode가 자원봉사 프로젝트인 줄 알았는데, 알고 보니 **대형 투자자들의 지원을 받는 기업형 프로젝트**였음  
  - [공식 GitHub 저장소](https://github.com/opencode-ai/opencode) 외에도 charm.sh 팀이 만든 경쟁 프로젝트가 있었음  
  - 아마도 crush, roocode, kilo 같은 프로젝트를 떠올린 것 같음. 이들은 아직 대형 후원은 없음

- 기능만 계속 추가하고 **핵심 유지보수**를 소홀히 해서 사용을 중단했음  
  여러 모델을 동시에 쓰는 게 목적이었지만, **컨텍스트 공유가 비효율적**이라 실용성이 떨어짐  
  지금은 Claude Code와 Codex를 병행 사용 중임  
  그래도 여러 모델을 통합할 **오픈 플랫폼의 필요성**은 여전히 큼  
  - ampcode([링크](https://ampcode.com/))와 Crush([링크](https://github.com/charmbracelet/crush)) + z.ai GLM 조합을 추천함  
    ampcode는 무료로 간단한 스크립트를 만들 수 있고, Crush+GLM은 Claude나 Codex의 계획을 잘 따름  
  - 새로운 기능을 추가하기보다 **리뷰와 품질 관리의 규율**을 지키는 게 더 어렵다는 의견도 있음

- 처음엔 **Aider**를 좋아했지만, 유지보수가 거의 안 돼서 문제를 자주 겪음  
  OpenCode를 설치하려다 이번 사태를 보고 망설이게 됨  
  **모델에 종속되지 않은 오픈소스 CLI LLM 어시스턴트**가 이렇게 부족한 게 놀라움
