🔍 CVE-2026-5160

6.1
CVSS Score
MEDIUM
2026-04-15
2026-04-23 17:00
✅ 완료

🇰🇷 한글 설명

github.com/yuin/goldmark/renderer/html 1.7.17 이전 버전에서 URL 검증과 HTML 엔티티 정규화 순서의 결함으로 인한 XSS 취약점입니다. 공격자는 javascript:alert(1) 같은 HTML5 명명된 문자 참조를 이용해 위험한 프로토콜 필터링을 우회하고 임의의 자바스크립트 코드를 실행할 수 있습니다.

💡 쉬운 설명

링크의 위험성을 특수 기호가 정상 문자로 변환되기 전에 미리 검사하는 실수가 있어서, 위장된 해로운 링크가 안전한 것처럼 속을 수 있습니다. 공격자는 이를 악용해 사용자가 클릭할 때 악성 코드를 실행하도록 할 수 있습니다.

🇺🇸 원문 (English)

Versions of the package github.com/yuin/goldmark/renderer/html before 1.7.17 are vulnerable to Cross-site Scripting (XSS) due to improper ordering of URL validation and normalization. The renderer validates link destinations using a prefix-based check (IsDangerousURL) before resolving HTML entities. This allows an attacker to bypass protocol filtering by encoding dangerous schemes using HTML5 named character references. For example, a payload such as javascript:alert(1) is not recognized as dangerous during validation, leading to arbitrary script execution in the context of applications that render the URL.

📍 영향받는 시스템

github.com/yuin/goldmark 1.7.17 미만 모든 버전

⚔️ 공격 벡터

Markdown 문서에 HTML5 문자 참조로 인코딩된 위험 프로토콜(예: javascript:alert(1))이 포함된 링크를 삽입하여 XSS 실행

🛡️ 대응 방법

github.com/yuin/goldmark를 1.7.17 이상으로 업그레이드 (go get -u github.com/yuin/goldmark)

🔧 검증 코드

출력된 버전이 v1.7.17 이상인지 확인합니다. 출력이 없으면 프로젝트에서 해당 패키지를 사용하지 않는 것입니다.

Shell / Script
go list -m github.com/yuin/goldmark 2>/dev/null || grep 'github.com/yuin/goldmark' go.mod 2>/dev/null

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Git