Miggo Logo

CVE-2025-54478: Mattermost Confluence Plugin is Missing Authentication for Critical Function

7.2

CVSS Score
3.1

Basic Information

EPSS Score
-
Published
8/11/2025
Updated
8/12/2025
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/mattermost/mattermost-plugin-confluencego< 1.5.01.5.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability, identified as CVE-2025-54478, stems from a lack of authentication on several critical API endpoints in the Mattermost Confluence Plugin. The root cause was the absence of a unified authentication and authorization check for endpoints that manage channel subscriptions.

The investigation of the patch that fixed this issue, specifically commit de0a3d4c9eefa013e7d9f7a18d82eeced63322e6, reveals the solution. The developers introduced a new middleware function, checkAuth, in server/controller.go. This function inspects incoming HTTP requests for a Mattermost-User-Id header to verify the user's identity. Endpoints are now explicitly marked as requiring authentication via an IsAuthenticated: true flag in their definition.

The most critical vulnerable function, as stated in the advisory, is handleEditChannelSubscription, which allowed unauthenticated attackers to modify existing subscriptions. However, the analysis of the patch shows that other functions like handleSaveSubscription (creating subscriptions) and handleGetChannelSubscription/handleGetChannelSubscriptions (retrieving subscription info) were also unprotected and were secured in the same commit. An exploit would involve sending a direct API call to one of the affected endpoints, such as a PUT request to /api/v1/{channelID}/subscription/{type} to trigger handleEditChannelSubscription, without providing a valid Mattermost-User-Id header.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

M*tt*rmost *on*lu*n** Plu*in v*rsions < *.*.* **il to *n*or** us*r *ut**nti**tion o* t** M*tt*rmost inst*n**, *llowin* un*ut**nti**t** *tt**k*rs to **it ***nn*l su*s*riptions vi* *PI **ll to t** **it ***nn*l su*s*ription *n*point.

Reasoning

T** vuln*r**ility, i**nti*i** *s *V*-****-*****, st*ms *rom * l**k o* *ut**nti**tion on s*v*r*l *riti**l *PI *n*points in t** M*tt*rmost *on*lu*n** Plu*in. T** root **us* w*s t** **s*n** o* * uni*i** *ut**nti**tion *n* *ut*oriz*tion ****k *or *n*poin