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

3 weeks ago 8

  • 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

Read Entire Article