🇰🇷 한글 설명
Brevo WordPress 플러그인 3.3.0 버전 이하에서 REST API 엔드포인트의 느슨한 비교 연산자(==) 사용으로 인한 타입 저글링 취약점입니다. 인증되지 않은 공격자가 boolean true 값을 이용해 인증 검증을 우회하고 API 키 삭제, 구독 폼 제거, 플러그인 설정 초기화 등의 행위를 수행할 수 있습니다.
💡 쉬운 설명
WordPress의 Brevo 이메일 플러그인에서 누구나(비로그인 상태에서도) 이메일 연동 설정을 끊을 수 있는 버그입니다. 공격자가 특정 값을 보내면 플러그인이 관리자인지 확인하지 않고 바로 설정을 삭제해버립니다.
🇺🇸 원문 (English)
The Brevo - Email, SMS, Web Push, Chat, and more. plugin for WordPress is vulnerable to authorization bypass due to type juggling in all versions up to, and including, 3.3.0. This is due to the use of loose comparison (==) instead of strict comparison (===) when validating the installation ID in the `/wp-json/mailin/v1/mailin_disconnect` REST API endpoint. This makes it possible for unauthenticated attackers to disconnect the Brevo integration, delete the API key, remove all subscription forms, and reset plugin settings by sending a boolean `true` value for the `id` parameter, which bypasses the authorization check through PHP type juggling.
📍 영향받는 시스템
Brevo - Email, SMS, Web Push, Chat plugin for WordPress 버전 3.3.0 이하
⚔️ 공격 벡터
/wp-json/mailin/v1/mailin_disconnect REST API에 id 파라미터로 boolean true를 POST 요청하여 인증 우회
🛡️ 대응 방법
Brevo 플러그인을 3.3.1 이상 버전으로 즉시 업데이트
🔧 검증 코드
HTTP 상태 코드 200과 success/disconnect 관련 응답이 반환되면 취약점 존재, 403/401 에러나 unauthorized 메시지가 반환되면 패치됨
curl -s 'http://target-site.com/wp-json/mailin/v1/mailin_disconnect' -X POST -H 'Content-Type: application/json' -d '{"id":true}' -w '\nStatus:%{http_code}\n'