Miggo Logo

CVE-2023-22489: Any Flarum user including unactivated can reply in public discussions whose first post was permanently deleted

3.5

CVSS Score
3.1

Basic Information

EPSS Score
0.2554%
Published
1/10/2023
Updated
1/29/2023
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
flarum/corecomposer>= 1.3.0, < 1.6.31.6.3

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stemmed from access control being skipped when a discussion's first_post_id was null. The key change in the patch replaces the discussion->first_post_id !== null check with a check against a new isFirstPost parameter. This indicates the original authorization logic in PostReplyHandler.php's handle method was flawed when first_post_id became null, making it the vulnerable function. The direct modification of this conditional in the fix confirms its role in the vulnerability.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

I* t** *irst post o* * *is*ussion is p*rm*n*ntly **l*t** *ut t** *is*ussion st*ys visi*l*, *ny **tor w*o **n vi*w t** *is*ussion is **l* to *r**t* * n*w r*ply vi* t** R*ST *PI, no m*tt*r t** r*ply p*rmission or lo*k st*tus. T*is in*lu**s us*rs t**t

Reasoning

T** vuln*r**ility st*mm** *rom ****ss *ontrol **in* skipp** w**n * *is*ussion's *irst_post_i* w*s null. T** k*y ***n** in t** p*t** r*pl***s t** `*is*ussion->*irst_post_i* !== null` ****k wit* * ****k ***inst * n*w `is*irstPost` p*r*m*t*r. T*is in*i*