Flarum 1.8.19 — Security Release
We strongly recommend all forums running Flarum 1.x upgrade to 1.8.19 immediately.
This is a security release that fixes a critical vulnerability allowing account takeover via the password-reset flow. If you run a public Flarum forum, please treat this as urgent.
Who is affected
- Flarum 1.x: all versions up to and including 1.8.18 are affected.
- Flarum 2.x: the
2.0.0-beta.1 through 2.0.0-beta.6 pre-releases were affected. This was resolved in 2.0.0-rc.1, so current 2.x is not affected.
If you are on 1.x, you are affected and should upgrade.
Impact
An unauthenticated attacker could take over any account on an affected forum — including administrator accounts — without needing the victim's password-reset token or any prior access. The only prerequisite is knowing (or guessing) a registered email address.
Because administrator accounts can be targeted, we consider this critical severity (CVSS 9.8).
Tracked as GHSA-55f2-h36g-96c3.
How to upgrade
composer update flarum/core --with-all-dependencies
php flarum migrate
php flarum cache:clear
Then confirm your version:
php flarum info
You should see Flarum core 1.8.19.
If you cannot upgrade right now
Upgrading is the only real fix, but if you genuinely cannot patch immediately, you can mitigate at your web server, reverse proxy, or WAF by rejecting password-reset requests whose token field is not a normal string value. Legitimate clients always send the reset token as a quoted string; the attack relies on sending a non-string value instead.
Block POST /reset requests whose JSON body matches:
"passwordToken"\s*:\s*(?!")
This blocks the malicious shape (a bare number, null, or boolean) while leaving genuine password resets untouched. Remove the rule and upgrade as soon as you are able — this is a stopgap, not a fix.
Details
Out of consideration for forums that have not yet upgraded, we are keeping the full technical write-up and proof-of-concept embargoed for now. Complete details will be published in the security advisory once forums have had a reasonable window to update.
Thanks
Thanks to the reporter for the responsible disclosure that led to this fix.
Questions about upgrading? Ask in theSupport tag. Please do not post exploit details publicly.