🇰🇷 한글 설명
Coder의 특정 버전에서 UpsertWorkspaceApp 함수가 기존 앱의 agent_id를 덮어쓰거나, CompleteJob 페이로드의 앱 ID를 검증 없이 수용하는 취약점이 존재합니다. 이로 인해 권한이 있는 사용자가 다른 워크스페이스의 에이전트를 자신의 워크스페이스로 재할당할 수 있습니다. 해당 문제는 2.29.7, 2.32.7, 2.33.8, 2.34.2 버전에서 수정되었습니다.
💡 쉬운 설명
공격자가 권한을 이용해 다른 사용자의 개발 환경(에이전트)을 자신의 환경으로 몰래 가져올 수 있는 보안 결함입니다. 이를 통해 데이터 접근이나 자원 탈취가 가능할 수 있습니다.
🇺🇸 원문 (English)
Coder allows organizations to provision remote development environments via Terraform. Prior to versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2, `UpsertWorkspaceApp` overwrites an existing app's `agent_id` on a primary-key conflict and `insertAgentApp` accepts the app ID from the provisioner's `CompleteJob` payload without verifying it belongs to the workspace being built. `CompleteJob` runs under `dbauthz.AsProvisionerd` so the authorization layer does not block the cross-workspace upsert. Exploitation requires elevated access as a template author or external provisioner operator. The fix in versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2 verifies that any existing `workspace_apps` row matching the supplied ID belongs to the workspace being built and rejects cross-workspace agent reassignment. No known workarounds are available.
📍 영향받는 시스템
Coder versions prior to 2.29.7, 2.32.7, 2.33.8, and 2.34.2
⚔️ 공격 벡터
템플릿 작성자 또는 외부 프로비저너 운영자 권한을 이용한 교차 워크스페이스 에이전트 재할당
🛡️ 대응 방법
Coder를 수정된 버전(2.29.7, 2.32.7, 2.33.8, 2.34.2 이상)으로 즉시 업데이트하십시오.
🔧 검증 코드
명령어 결과에 수정된 버전 번호가 포함되어 있으면 안전하며, 포함되지 않으면 취약할 수 있습니다.
coder --version | grep -E '2/(29\.7|32\.7|33\.8|34\.2)'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N
💻 영향받는 소프트웨어
IBM Security Verify Access