🔍 CVE-2026-58228

0.0
CVSS Score
UNKNOWN
2026-07-13
2026-10-24 22:10
✅ 완료

🇰🇷 한글 설명

phoenixframework의 phoenix_live_view에서 URL 스킴 검증 우회를 통한 크로스사이트 스크립팅(XSS) 취약점이 존재합니다. 선행 제어문자나 공백이 포함된 javascript: URL이 안전한 상대 경로로 잘못 판단되어, 브라우저에서 피해자 세션에 공격자 스크립트가 실행될 수 있습니다.

💡 쉬운 설명

웹 링크 주소 검사 과정에서 앞에 보이지 않는 문자나 공백을 붙이면 위험한 링크가 안전한 것으로 잘못 인식됩니다. 사용자가 이 링크를 클릭하면 공격자가 준비한 악성 스크립트가 실행될 수 있습니다.

🇺🇸 원문 (English)

Cross-site scripting vulnerability in phoenixframework phoenix_live_view allows an attacker to bypass URL scheme validation and execute JavaScript in a victim's browser session. The Phoenix.LiveView.Utils.valid_destination!/2 and Phoenix.LiveView.Utils.valid_live_navigation_destination!/2 functions in lib/phoenix_live_view/utils.ex rely on an internal uri_scheme/1 helper that only detects a scheme when the input's first byte is an ASCII letter. Inputs beginning with an ASCII control character or space fall through to a nil-returning clause, causing the URL to be treated as a safe relative path. Standard browsers implement the WHATWG URL parser, which strips leading C0 control and space characters before parsing. As a result, an input such as " javascript:alert(1)" is passed unchanged into <.link href={...}> and, when clicked, is parsed by the browser as a javascript: URL that executes attacker-controlled script in the victim's session. Applications that render user-supplied URLs (for example profile links, redirect targets, or external references) via <.link href={...}> are affected. This issue affects phoenix_live_view: from 1.2.2 before 1.2.7.

📍 영향받는 시스템

phoenix_live_view 1.2.2 이상 1.2.7 미만 버전 (Elixir Phoenix 프레임워크 기반 웹 애플리케이션)

⚔️ 공격 벡터

공백 또는 제어문자로 시작하는 javascript: URL을 사용자 입력(프로필 링크, 리다이렉트 대상 등)으로 주입하여 <.link href> 렌더링 시 클릭을 유도

🛡️ 대응 방법

phoenix_live_view를 1.2.7 이상으로 업그레이드하고, 사용자 입력 URL은 스킴 허용 목록(http, https 등)으로 별도 검증

🔧 검증 코드

출력된 버전이 1.2.2 이상 1.2.7 미만이면 취약하며, 1.2.7 이상이면 패치된 상태입니다. 결과가 없으면 해당 프로젝트에서 phoenix_live_view를 사용하지 않는 것입니다.

Shell / Script
grep -E 'phoenix_live_view' mix.lock 2>/dev/null

💻 영향받는 소프트웨어

Oracle Java SE