🇰🇷 한글 설명
phpMyFAQ 4.1.3 이전 버전의 사용자 암호 업데이트 API 엔드포인트(/api/index.php/user/password/update)에서 토큰 검증이 없어 인증 없이 임의의 계정 암호를 변경할 수 있습니다. 공격자는 유효한 사용자명과 이메일 쌍을 열거하여 PUT 요청으로 비밀번호를 강제 변경해 계정 접근 불가 및 자격증명 무효화를 야기합니다.
💡 쉬운 설명
phpMyFAQ에서 누구나 다른 사람의 비밀번호를 확인 없이 변경할 수 있는 보안 결함이 있습니다. 공격자가 사용자 계정을 탈취하거나 잠금 상태로 만들 수 있습니다.
🇺🇸 원문 (English)
phpMyFAQ before 4.1.3 contains an unauthenticated password reset vulnerability in the user password update API endpoint that allows attackers to change account passwords without token validation. Attackers can enumerate valid username and email pairs and force immediate password changes by sending PUT requests to the /api/index.php/user/password/update endpoint, causing account disruption and invalidating legitimate user credentials.
📍 영향받는 시스템
phpMyFAQ < 4.1.3
⚔️ 공격 벡터
/api/index.php/user/password/update 엔드포인트에 PUT 요청으로 인증 없이 사용자명과 새 비밀번호 전송
🛡️ 대응 방법
phpMyFAQ를 4.1.3 이상으로 즉시 업그레이드하고 API 엔드포인트에 토큰 검증 및 인증 강화
🔧 검증 코드
토큰/인증 오류가 아닌 'success' 또는 'error' 응답이 나타나면 패치 필요, 401/403 오류 응답이면 패치됨
curl -s -X PUT http://localhost/api/index.php/user/password/update -d '{"username":"admin","password":"test123"}' -H 'Content-Type: application/json' 2>/dev/null | grep -c 'success\|error' | grep -q '^[1-9]$' && echo 'VULNERABLE' || echo 'PROTECTED'