The getgrav/grav-plugin-login Composer plugin before version 3.9.1 contains a timing side-channel vulnerability in its password reset and account activation token comparison logic. The affected code uses a non-constant-time === string comparison instead of the secure hash_equals() function in classes/Controller.php and login.php. Additionally, the token submission endpoint (taskReset) lacks rate limiting, compounding the risk. An attacker with knowledge of a valid username could theoretically send repeated token guesses and use timing differences to recover a valid reset or activation token. The vendor acknowledges the flaw but rates practical exploitability as low, and no end-to-end network exploit has been publicly demonstrated. The fix is available in version 3.9.1 of the plugin.