🔍 CVE-2026-32629

6.1
CVSS Score
MEDIUM
2026-04-02
2026-10-26 21:10
✅ 완료

🇰🇷 한글 설명

phpMyFAQ 4.1.1 이전 버전에서 비인증 공격자가 RFC 5321 형식의 이메일 주소에 HTML 코드를 삽입하여 FAQ를 제출할 수 있습니다. PHP의 FILTER_VALIDATE_EMAIL이 이를 유효한 이메일로 처리하고, Twig 템플릿의 |raw 필터로 인해 이스케이프 없이 관리자 페이지에 렌더링됩니다. 이로 인해 저장형 XSS(Cross-Site Scripting) 공격이 가능합니다.

💡 쉬운 설명

공격자가 이메일 주소처럼 보이는 악성 코드를 FAQ 제출 폼에 넣으면, 관리자가 해당 FAQ를 열람할 때 악성 스크립트가 실행됩니다. 마치 편지 봉투 주소란에 폭발물을 숨겨 두는 것처럼, 관리자가 열어보는 순간 공격이 발동됩니다.

🇺🇸 원문 (English)

phpMyFAQ is an open source FAQ web application. Prior to version 4.1.1, an unauthenticated attacker can submit a guest FAQ with an email address that is syntactically valid per RFC 5321 (quoted local part) yet contains raw HTML — for example "<script>alert(1)</script>"@evil.com. PHP's FILTER_VALIDATE_EMAIL accepts this email as valid. The email is stored in the database without HTML sanitization and later rendered in the admin FAQ editor template using Twig's |raw filter, which bypasses auto-escaping entirely. This issue has been patched in version 4.1.1.

📍 영향받는 시스템

phpMyFAQ 4.1.1 미만 모든 버전

⚔️ 공격 벡터

비인증 사용자가 이메일 필드에 '<script>alert(1)</script>'@evil.com 형태의 XSS 페이로드를 삽입한 guest FAQ 제출 → 관리자 FAQ 편집 페이지에서 |raw 필터로 렌더링 시 실행

🛡️ 대응 방법

phpMyFAQ를 버전 4.1.1 이상으로 업그레이드하거나, 이메일 저장 전 HTML 이스케이프 처리 및 Twig 템플릿에서 |raw 필터 제거

🔧 검증 코드

출력된 버전이 4.1.1 미만이면 취약, 4.1.1 이상이면 패치 완료

Shell / Script
php -r "require 'vendor/autoload.php'; echo (new phpMyFAQ\System())->getVersion();" 2>/dev/null || grep -rE "version.*[0-9]+\.[0-9]+\.[0-9]+" composer.json 2>/dev/null | head -1

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

PHP