-
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