🇰🇷 한글 설명
phpList 3.7.0-RC5 미만 버전에서 bounce rule 삭제 엔드포인트에 대한 CSRF 토큰 검증이 제대로 이루어지지 않는 취약점이 발견되었습니다. 공격자는 인증된 관리자가 조작된 URL을 로드하도록 유도하여 유효한 토큰 없이도 bounce rule을 임의로 삭제할 수 있습니다.
💡 쉬운 설명
관리자가 모르는 사이에 악성 링크를 클릭하게 만들어, 관리자 권한으로 중요한 설정(반송 규칙)을 삭제하게 만드는 공격입니다. 공격자는 직접 로그인하지 않고도 관리자의 권한을 이용해 시스템 설정을 망가뜨릴 수 있습니다.
🇺🇸 원문 (English)
phpList before 3.7.0-RC5 fail to enforce CSRF token validation on the bounce rule deletion endpoint (bouncerules.php / bouncerule.php). The deletion is performed via a GET request (?page=bouncerules&del=N), and the central CSRF check (verifyCsrfGetToken) is invoked with enforce=false, so it only validates the token when a 'tk' parameter is present. A remote attacker can trick an authenticated administrator into loading a crafted URL (e.g., embedded in an image tag) to delete arbitrary bounce rules from the phplist_bounceregex table without a valid CSRF token.
📍 영향받는 시스템
phpList version < 3.7.0-RC5
⚔️ 공격 벡터
인증된 관리자를 대상으로 한 CSRF(Cross-Site Request Forgery) 공격
🛡️ 대응 방법
phpList를 3.7.0-RC5 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
설치된 phpList의 버전이 3.7.0-RC5 미만인지 확인하여 취약 여부를 판단합니다.
php -r 'echo "phpList version check";' # 실제 버전 확인은 설치된 소스 코드의 version.php 또는 composer.json 확인 필요