🇰🇷 한글 설명
phpMyFAQ 4.1.1 이전 버전의 SVG 새니타이저(SvgSanitizer.php)에서 HTML 엔티티 인코딩을 통해 javascript: URL 필터링을 우회할 수 있는 취약점이 존재합니다. edit_faq 권한이 있는 사용자가 악성 SVG 파일을 업로드하면, 이를 조회하는 사용자의 브라우저에서 임의의 자바스크립트가 실행되어 관리자 권한을 탈취할 수 있습니다.
💡 쉬운 설명
이미지 파일(SVG)에 숨겨진 악성 코드를 이용해 관리자 권한을 훔칠 수 있는 취약점입니다. 권한이 낮은 편집자가 특수하게 제작된 이미지를 업로드하여 관리자를 공격하는 방식입니다.
🇺🇸 원문 (English)
phpMyFAQ is an open source FAQ web application. Prior to version 4.1.1, the regex-based SVG sanitizer in phpMyFAQ (SvgSanitizer.php) can be bypassed using HTML entity encoding in javascript: URLs within SVG <a href> attributes. Any user with edit_faq permission can upload a malicious SVG that executes arbitrary JavaScript when viewed, enabling privilege escalation from editor to full admin takeover. This issue has been patched in version 4.1.1.
📍 영향받는 시스템
phpMyFAQ version 4.1.1 미만
⚔️ 공격 벡터
HTML 엔티티 인코딩을 이용한 SVG 내 javascript: URL 삽입 및 업로드
🛡️ 대응 방법
phpMyFAQ를 최신 버전인 4.1.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 4.1.1보다 낮은 버전일 경우 취약한 상태입니다.
grep '"version":' composer.json | grep -E '4\.[0-9]\.'