🔍 CVE-2026-102615

7.6
CVSS Score
HIGH
2026-11-05
2026-11-05 16:17
✅ 완료

🇰🇷 한글 설명

HeyForm은 오픈소스 폼 빌더입니다. 3.0.1 이전 버전에서는 /api/upload가 클라이언트가 제어하는 multipart file.mimetype을 신뢰하고 HTML 파일명을 그대로 유지하며, static/upload는 contentSecurityPolicy가 비활성화된 상태로 이를 text/html로 제공합니다. 이로 인해 일반 사용자가 악성 HTML을 업로드하고 피해자가 반환된 URL을 열면 HeyForm 출처에서 스크립트가 실행될 수 있으며, 해당 스크립트는 피해자 세션으로 /graphql에 접근해 데이터를 읽거나 수정할 수 있습니다.

💡 쉬운 설명

HeyForm이라는 설문/폼 도구에서 공격자가 악성 웹 파일을 올려두고 사람이 그 링크를 열면, 그 사람의 계정으로 몰래 데이터를 보거나 바꿀 수 있는 문제입니다. 3.0.1 이상 버전으로 업데이트하면 해결됩니다.

🇺🇸 원문 (English)

HeyForm is an open-source form builder. Prior to 3.0.1, /api/upload accepts a file according to the client-controlled multipart file.mimetype while retaining an HTML filename, and static/upload serves the resulting file as text/html with contentSecurityPolicy: false. An ordinary user can therefore upload active HTML that executes on the HeyForm origin when a victim opens its returned URL. The same-origin script can access /graphql with the victim's session and read or modify data available to that account. The code also permits upload requests tied to an active public form through formId, openToken, and a fieldId belonging to a file or signature question, although the advisory did not fully verify that unauthenticated path end to end. This issue is fixed in version 3.0.1.

📍 영향받는 시스템

HeyForm 3.0.1 이전 버전

⚔️ 공격 벡터

악성 HTML 파일을 업로드한 뒤 피해자가 반환된 URL을 열도록 유도하여 저장형 XSS 실행

🛡️ 대응 방법

HeyForm을 3.0.1 이상으로 업데이트하고, 업로드 파일의 MIME 타입 서버 측 검증 및 CSP 활성화를 적용

🔧 검증 코드

출력된 version 값이 3.0.1 미만이면 취약한 버전이며, 3.0.1 이상이면 패치가 적용된 것입니다. 결과가 없으면 HeyForm이 설치되어 있지 않을 수 있습니다.

Shell / Script
grep -rE '"version"' $(find / -path '*heyform*' -name package.json 2>/dev/null | head -1) 2>/dev/null

📊 CVSS Vector String

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