🔍 CVE-2026-61728

9.9
CVSS Score
CRITICAL
2026-10-30
2026-11-05 22:18
✅ 완료

🇰🇷 한글 설명

SOCFortress CoPilot 0.1.76 이전 버전에서 포털 사용자가 알림 코멘트, SOC 케이스, 자산, 헬스체크 필드에 악성 HTML/스크립트를 저장할 수 있으며, 이를 다른 사용자가 조회할 때 스크립트가 실행됩니다. 인증 토큰이 JavaScript에서 읽을 수 있는 저장소에 보관되어 토큰 탈취와 관리자 계정 장악이 가능합니다.

💡 쉬운 설명

공격자가 보안 알림에 숨겨진 악성 코드를 남기면, 분석가나 관리자가 그 알림을 열 때 코드가 실행됩니다. 이로 인해 관리자의 로그인 토큰이 탈취되어 시스템 전체가 장악될 수 있습니다.

🇺🇸 원문 (English)

SOCFortress CoPilot focuses on providing a single pane of glass for all your security operations needs. In affected snapshots preceding the respective 0.1.70 and 0.1.76 sink repairs, portal users, including `customer_user`, can submit stored markup through `POST /api/incidents/db_operations/alert/comment`. In `customer-portal/src/components/alerts/AlertDetails/AlertComment.vue`, `commentHtml` replaces newlines in `comment.comment` but passes the result to `v-html` without escaping or sanitizing HTML. When another user views the poisoned alert, stored script executes on the application origin; the same unsanitized rendering pattern affects server-stored SOC case, asset and health-check fields in `SocCaseNote.vue`, `SocCaseItem.vue`, `SocCaseAssetsItem.vue`, `SocAlertAssetsItem.vue` and `HealthcheckItem.vue`. The authentication store in `customer-portal/src/stores/auth.ts` persists both access and refresh tokens in JavaScript-readable storage, and `customer-portal/src/api/httpClient.ts` uses bearer headers rather than HttpOnly cookies. An injected script can steal both tokens, impersonate the viewer and obtain fresh tokens through `/auth/refresh`. If an analyst or administrator views the poisoned alert or case, this enables persistent privileged account takeover, cross-tenant data access, incident modification or deletion, and detection/response subversion. The health-check sink repair is first contained in version 0.1.70, while the comment and other SOC sink repairs are first contained in version 0.1.76. Version 0.1.76 is the provisional first release containing all observed repairs; grouped versus split CVE scope requires curator adjudication.

📍 영향받는 시스템

SOCFortress CoPilot 0.1.76 미만 버전 (헬스체크 필드는 0.1.70 미만)

⚔️ 공격 벡터

포털 사용자가 알림 코멘트 API(POST /api/incidents/db_operations/alert/comment)에 악성 스크립트를 저장한 뒤, 분석가/관리자가 해당 알림을 열면 XSS로 토큰을 탈취

🛡️ 대응 방법

SOCFortress CoPilot을 0.1.76 이상으로 업그레이드하고, 토큰 저장 방식을 HttpOnly 쿠키로 변경하며, 세션 토큰을 즉시 재발급합니다.

🔧 검증 코드

출력된 이미지 태그가 0.1.76 이상이면 패치된 버전이고, 그보다 낮으면 취약한 버전이므로 즉시 업그레이드가 필요합니다.

Shell / Script
docker images --format '{{.Repository}}:{{.Tag}}' | grep -i copilot

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

💻 영향받는 소프트웨어

Copilot