Description
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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| phplist | phplist3 | < 3.7.0-RC5 | 3.7.0-RC5 |
References
- Researcher Disclosure technical-description exploit issue-tracking
- phpList 3.7.0-RC5 Release Notes release-notes
- Pull Request issue-tracking patch
- Patch Commit patch
- https://www.vulncheck.com/advisories/phplist-rc5-cross-site-request-forgery-via-bounce-rules third-party-advisory