🔍 CVE-2026-50571

5.7
CVSS Score
MEDIUM
2026-10-27
2026-10-28 17:18
✅ 완료

🇰🇷 한글 설명

WebSub 프로토콜의 구독 확인(intent-verification) 과정에서 subscriber가 hub.challenge 값을 Content-Type 검증이나 MIME 스니핑 차단 없이 반환하여, 공격자가 조작된 HTML/JavaScript를 피해자 브라우저의 구독자 오리진에서 실행시킬 수 있습니다. 이로 인해 세션 탈취, localStorage/sessionStorage 접근, 권한 악용이 가능하며, script-src 'self' 우회에도 활용될 수 있습니다.

💡 쉬운 설명

웹사이트가 인증 과정에서 받은 값을 검사 없이 그대로 웹페이지에 보여주면, 해커가 악성 코드를 넣어 피해자 브라우저에서 실행시킬 수 있습니다. 그러면 로그인 정보나 개인 데이터가 유출될 수 있습니다.

🇺🇸 원문 (English)

WebSub is a W3C recommendation produced by the Social Web Working Group. In recommendation REC-websub-20180123, the intent-verification protocol requires a subscriber to echo the `hub.challenge` value, also exposed as `hub_challenge` by some frameworks, but does not require safe response media typing or disabled MIME sniffing. An attacker can initiate a subscription to obtain a callback URL and redirect a victim browser to a crafted verification request containing HTML or JavaScript. Subscribers that return the challenge as `text/html` can execute the reflected content in the subscriber origin, using a victim's existing session to read private data or perform actions, exposing `localStorage` or `sessionStorage` and browser permissions granted to that origin. An alternative uses the verification response as an attacker-controlled same-origin script resource to bypass `script-src 'self'`; this can remain possible with `application/octet-stream` when MIME sniffing is allowed. Safe media typing and `X-Content-Type-Options: nosniff` are both needed to address the described scenarios. WebSub Rocks demonstrated reflection, but the advisory does not establish practical impact on that demonstration site.

📍 영향받는 시스템

WebSub(W3C REC-websub-20180123) 구독자(subscriber) 구현체 중 challenge 값을 text/html 등 안전하지 않은 미디어 타입으로 반환하거나 MIME 스니핑을 허용하는 시스템

⚔️ 공격 벡터

공격자가 구독을 시작해 콜백 URL을 얻은 뒤, 피해자 브라우저를 악성 HTML/JS가 담긴 검증 요청으로 리다이렉트하여 구독자 오리진에서 스크립트를 실행

🛡️ 대응 방법

challenge 응답을 text/plain 등 안전한 Content-Type으로 반환하고 X-Content-Type-Options: nosniff 헤더를 설정하며, 필요시 구현체를 최신 버전으로 업데이트

🔧 검증 코드

Content-Type이 text/html 등 실행 가능한 타입이 아니고 X-Content-Type-Options: nosniff 헤더가 존재하면 안전하며, 헤더가 없거나 text/html로 응답하면 취약할 수 있습니다.

Shell / Script
curl -sI https://YOUR_SUBSCRIBER_CALLBACK_URL/?hub.challenge=test | grep -iE 'content-type|x-content-type-options'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Oracle Java SE