🇰🇷 한글 설명
phpMyFAQ 4.1.2 이전 버전의 BuiltinCaptcha 클래스에서 User-Agent 헤더가 DELETE/INSERT 쿼리에 직접 삽입되는 SQL injection 취약점입니다. 비인증 공격자가 /api/captcha 엔드포인트를 악용하여 시간 기반 블라인드 SQL injection을 수행하고 사용자 자격증명, 관리자 토큰, SMTP 설정 등 민감 정보를 탈취할 수 있습니다.
💡 쉬운 설명
웹사이트가 방문자의 브라우저 정보를 검증 없이 데이터베이스에 저장하면서 해커가 특수 문자를 삽입하여 몰래 데이터를 빼낼 수 있습니다. 인증 없이 공개 페이지에서 공격 가능한 심각한 결함입니다.
🇺🇸 원문 (English)
phpMyFAQ before 4.1.2 contains an unauthenticated SQL injection vulnerability in BuiltinCaptcha::garbageCollector() and BuiltinCaptcha::saveCaptcha() methods that interpolate unsanitized User-Agent headers into DELETE and INSERT queries. Unauthenticated attackers can exploit the public GET /api/captcha endpoint by crafting malicious User-Agent headers to perform time-based blind SQL injection, extracting sensitive data including user credentials, admin tokens, and SMTP credentials from the database.
📍 영향받는 시스템
phpMyFAQ 4.1.2 이전 모든 버전
⚔️ 공격 벡터
악성 User-Agent 헤더를 포함한 HTTP GET 요청을 /api/captcha 엔드포인트로 전송
🛡️ 대응 방법
phpMyFAQ를 4.1.2 이상으로 즉시 업그레이드 및 User-Agent 입력 검증 로직 강화
🔧 검증 코드
4.1.2 이상 버전 표시 시 취약점 패치됨, 그 이하 또는 파일 미존재 시 즉시 업그레이드 필요
find / -name 'VERSION' -path '*phpmyfaq*' 2>/dev/null | xargs cat 2>/dev/null | head -1