🔍 CVE-2026-52807

0.0
CVSS Score
UNKNOWN
2026-06-24
2026-06-25 16:16
✅ 완료

🇰🇷 한글 설명

Gogs 0.14.3 미만 버전에서 마일스톤 이름에 저장된 HTML 페이로드가 Semantic UI의 드롭다운 컴포넌트와 상호작용할 때 실행되는 XSS 취약점입니다. 공격자가 마일스톤 이름을 조작하여 악성 스크립트를 삽입하면, 사용자가 이슈 생성 페이지에서 드롭다운을 사용할 때 스크립트가 실행됩니다.

💡 쉬운 설명

마일스톤 이름에 몰래 숨겨둔 악성 코드가 드롭다운 메뉴를 클릭하는 순간 실행되는 보안 약점입니다. 이를 통해 공격자는 사용자의 브라우저에서 원치 않는 동작을 수행할 수 있습니다.

🇺🇸 원문 (English)

Gogs is an open source self-hosted Git service. Prior to 0.14.3, in new_form.tmpl, milestone names are rendered with Go's default auto-escaping ({{.Name}}), which converts < to &lt; etc. This prevents direct HTML injection. However, when the browser renders the DOM, the text content of the element contains the decoded original payload. Semantic UI 2.4.2's dropdown component has preserveHTML: true as the default setting. When a user selects a dropdown item, the internal set.text() method calls jQuery's .html() with the item's text content. This re-parses the decoded text as HTML, creating the injected element and triggering the JavaScript event handler. An attacker can store an HTML/JavaScript payload in a milestone name, and when any user opens the New Issue page and interacts with the milestone dropdown, the payload executes in their browser via Semantic UI's preserveHTML behavior. This vulnerability is fixed in 0.14.3.

📍 영향받는 시스템

Gogs 0.14.3 미만 버전

⚔️ 공격 벡터

마일스톤 이름에 HTML/JavaScript 페이로드를 저장한 후, 사용자가 이슈 생성 페이지의 드롭다운 메뉴를 조작하도록 유도

🛡️ 대응 방법

Gogs를 최신 버전인 0.14.3 이상으로 업데이트

🔧 검증 코드

마일스톤 이름에 <script> 태그가 포함된 페이로드가 정상적으로 조회되는지 확인하여 취약 여부를 판단합니다.

Shell / Script
curl -s http://<target-gogs-url>/api/v1/milestones | grep -oP '"name":"\K[^"]+' | grep '<script>'

💻 영향받는 소프트웨어

Git