CVE-2026-39923

critical

Description

Flarum before 1.8.16 contains a password reset token expiry bypass vulnerability that allows unauthenticated attackers to reuse expired password reset tokens by submitting them directly to the reset processing endpoint. The SavePasswordController::handle() method calls PasswordToken::findOrFail() without performing any expiry validation, allowing attackers to bypass the 24-hour token lifetime enforced only during form rendering and change any account's password to gain an authenticated session.

References

https://www.vulncheck.com/advisories/flarum-password-reset-token-expiry-bypass-via-post-reset

https://github.com/flarum/framework/releases/tag/v1.8.16

https://github.com/flarum/framework/pull/4545

https://github.com/flarum/framework/commit/2803058d0f9dc38252326070b46d4484fe5a857d

Details

Source: Mitre, NVD

Published: 2026-08-05

Updated: 2026-08-05

Risk Information

CVSS v2

Base Score: 7.6

Vector: CVSS2#AV:N/AC:H/Au:N/C:C/I:C/A:C

Severity: High

CVSS v3

Base Score: 8.1

Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Severity: High

CVSS v4

Base Score: 9.2

Vector: CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Severity: Critical

EPSS

EPSS: 0.0026