🇰🇷 한글 설명
phpMyFAQ 4.1.10 이전 버전에는 객체 수준 인가 우회 취약점이 존재합니다. 인증되지 않은 공격자가 POST /api/faq/create 요청에 임의의 openQuestionID를 전달하면 다른 방문자의 질문을 수정하거나 삭제할 수 있습니다. CAPTCHA를 통과한 공격자는 질문 카테고리를 변경하거나 faqquestion_history에 답변을 위조하거나, records.enableDeleteQuestion이 활성화된 경우 질문을 영구 삭제할 수 있습니다.
💡 쉬운 설명
웹사이트의 FAQ 질문 관리 기능에 허점이 있어, 로그인하지 않은 사람도 다른 사람이 올린 질문을 고치거나 지울 수 있습니다. 보안 확인 문자만 통과하면 이런 조작이 가능합니다.
🇺🇸 원문 (English)
phpMyFAQ before 4.1.10 contains an object-level authorization bypass vulnerability that allows unauthenticated attackers to modify or delete any visitor question by supplying an arbitrary openQuestionID to POST /api/faq/create. Attackers solving the CAPTCHA can rewrite question categories, forge answered entries in faqquestion_history, or permanently delete questions when records.enableDeleteQuestion is enabled.
📍 영향받는 시스템
phpMyFAQ 4.1.10 미만 버전
⚔️ 공격 벡터
CAPTCHA를 통과한 뒤 POST /api/faq/create 요청에 임의의 openQuestionID를 넣어 타인의 질문을 수정·삭제·답변 위조
🛡️ 대응 방법
phpMyFAQ를 4.1.10 이상으로 업그레이드하고, 업그레이드 전까지 records.enableDeleteQuestion 설정을 비활성화하거나 해당 API 경로에 접근 제한을 적용
🔧 검증 코드
출력된 버전 문자열이 4.1.10 미만이면 취약, 4.1.10 이상이면 패치 적용된 상태이며 경로가 다르면 실제 설치 디렉터리로 수정하여 확인
grep -rh "VERSION" /var/www/html/phpmyfaq/src/phpmyfaq/Version.php 2>/dev/null | head -1