🇰🇷 한글 설명
WordPress용 ClearSale Total 플러그인 3.4.2 이하 버전에서 SQL 인젝션 취약점이 발견되었습니다. PHP 8.0 미만 환경에서 느슨한 타입 비교(Type Juggling)를 악용하여 인증되지 않은 공격자가 데이터베이스의 민감한 정보를 탈취할 수 있습니다.
💡 쉬운 설명
해커가 특수하게 조작된 명령어를 보내 웹사이트의 데이터베이스를 마음대로 조작하거나 정보를 훔쳐갈 수 있는 보안 구멍이 발견되었습니다. 특히 오래된 PHP 버전을 사용하는 서버가 위험합니다.
🇺🇸 원문 (English)
The ClearSale Total plugin for WordPress is vulnerable to SQL Injection via the `pagseguro[metodo]` POST parameter of the `clearsale_total_push` AJAX action in all versions up to, and including, 3.4.2. The handler is registered for unauthenticated users (`wp_ajax_nopriv_clearsale_total_push`), and although a `wp_verify_nonce()` check exists, the failing branch's `die()` is commented out so execution continues regardless of nonce validity. On PHP < 8.0 the attacker-supplied `$metodo` value bypasses the `switch ($metodo) { case 4: ... }` guard via loose type juggling (the string `"4 AND SLEEP(5)"` compares equal to integer `4`), reaching an unquoted `UPDATE wp_cs_total_dadosextras SET metodo=$metodo, ...` query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. Exploitation requires the target server to be running PHP < 8.0.
📍 영향받는 시스템
ClearSale Total WordPress plugin (v3.4.2 및 그 이하 버전, PHP 8.0 미만 환경)
⚔️ 공격 벡터
인증되지 않은 사용자가 AJAX 요청의 pagseguro[metodo] 파라미터에 SQL 구문을 삽입하여 공격
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하고, 서버의 PHP 버전을 8.0 이상으로 업그레이드하십시오.
🔧 검증 코드
명령어 결과에 해당 플러그인이 나타나면 설치된 것이며, 설치된 버전이 3.4.2 이하인지 확인이 필요합니다.
wp plugin list --status=active | grep -i 'clearsale-total'