🇰🇷 한글 설명
YesWiki 4.6.0 이전 4.7.0 및 5.0.0-alpha1 이전 5.0.0-alpha4 버전에는 인증 없이 악용 가능한 SQL 인젝션 취약점이 존재합니다. 공개 Bazar 검색 API의 query 및 searchfields 파라미터에 포함된 필드명이 백틱으로 감싸진 별칭에 삽입되며, mysqli_real_escape_string으로만 이스케이프됩니다. 공격자는 백틱을 이용해 서브쿼리를 주입하여 사용자 비밀번호 해시 등의 데이터를 읽거나 SLEEP()으로 데이터베이스 스레드를 고갈시킬 수 있습니다.
💡 쉬운 설명
누구나 로그인 없이 위조된 검색어를 보내 웹사이트 데이터베이스의 내용을 훔쳐볼 수 있는 심각한 보안 결함입니다. 공격자는 사용자 비밀번호 정보까지 빼낼 수 있으며, 사이트를 느리게 만들어 서비스를 마비시킬 수도 있습니다.
🇺🇸 원문 (English)
YesWiki 4.6.0 before 4.7.0 and 5.0.0-alpha1 before 5.0.0-alpha4 contains an unauthenticated SQL injection vulnerability in SearchManager::prepareSearchRequest(). Field names from the query and searchfields parameters of the public Bazar entries search API are placed in a backtick-quoted alias escaped only with mysqli_real_escape_string. Attackers can supply a backtick to inject subqueries, reading data such as user password hashes or exhausting database threads with SLEEP().
📍 영향받는 시스템
YesWiki 4.6.0 이상 4.7.0 미만, 5.0.0-alpha1 이상 5.0.0-alpha4 미만 버전
⚔️ 공격 벡터
인증 없이 공개 Bazar 검색 API의 query 또는 searchfields 파라미터에 백틱(`)을 포함한 조작된 필드명을 전송하여 서브쿼리를 주입
🛡️ 대응 방법
YesWiki를 4.7.0 이상 또는 5.0.0-alpha4 이상으로 업데이트하고, 업데이트 전까지 공개 Bazar 검색 API 접근을 제한
🔧 검증 코드
출력된 버전 값이 4.7.0 이상 또는 5.0.0-alpha4 이상이면 패치 완료이며, 4.7.0 미만 또는 5.0.0-alpha4 미만이면 취약한 상태이므로 즉시 업데이트가 필요합니다.
grep -rn "version" /var/www/html/includes/config.php 2>/dev/null | head -5