Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconSend email with URL containing unescaped quotes
-
DeliveryEmail stored in FreeScout database
-
ExploitUser views email thread
-
Installlinkify() converts URL to unescaped href attribute
-
C2HTML/JavaScript injected into DOM
-
ExecuteAttacker payload executes in user's browser context
-
ImpactSession hijack or credential theft
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The vulnerability requires that an attacker craft an email containing a URL with unescaped double-quote characters (" or \u0022) and send it to a FreeScout-monitored mailbox. The attacker does not need to be authenticated to send email to the help desk inbox. However, exploitation of the resulting XSS payload requires that a FreeScout user (typically a help desk agent or customer) view the email thread in the web interface (UI:R). The vulnerability is NOT triggered in plain-text email clients or if email rendering is disabled. It is specific to FreeScout's web-based email display and requires the linkify() function to process the URL. Default FreeScout configurations with external email integration are vulnerable; isolated internal help desks are at lower risk if emails originate only from trusted internal sources. |
| Impact | The CVSS v3.1 score of 6.1 (AV:N/AC:L/PR:N/UI:R/S:C) reflects a moderate-to-high severity cross-site scripting vulnerability. The network attack vector and low complexity indicate that any remote attacker can craft a malicious email with a poisoned URL. However, the requirement for user interaction (UI:R) - specifically that a help desk agent or customer must view the email thread - limits immediate automated exploitation. The scope change (S:C) indicates the XSS can impact other security domains beyond the vulnerable component (e.g., session theft, lateral movement). The confidentiality and integrity impact scores (C:L/I:L) are conservative; in practice, stored XSS enabling session hijacking or credential theft in a help desk system could have higher impact. No EPSS or KEV status provided; however, the presence of a GitHub advisory and confirmed fix suggests this is a known and disclosed vulnerability rather than an unpatched zero-day. The combination of unauthenticated submission (attackers can send emails to the help desk) and stored persistence in the database makes this a credible threat for help desk deployments exposed to external email. Real-world risk depends heavily on deployment scope: internal-only help desks have lower risk than those receiving untrusted external email. |
| Exploit ScenarioDerived | An attacker sends an email to a FreeScout help desk address with a URL containing an embedded double-quote character, such as: 'Check https://example.com/page" onmouseover="alert(document.cookie)'. When a help desk agent views the email thread, FreeScout's linkify() function converts this into an HTML anchor tag like '<a href="https://example.com/page" onmouseover="alert(document.cookie)">...', injecting the onmouseover event handler. When the agent hovers over or interacts with the link, the JavaScript executes in the agent's browser context, potentially stealing session cookies or credentials. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 21, 2026
Stored cross-site scripting (XSS) in FreeScout prior to version 1.8.213 allows remote attackers to inject arbitrary HTML attributes into email message bodies by embedding unescaped double-quote characters in URLs. When the linkify() function converts plain-text URLs to anchor tags without proper escaping, attackers can break out of the href attribute and inject malicious JavaScript or event handlers. This requires user interaction (UI:R) to view a crafted email, but once viewed, the injected script executes in the context of the victim's session with potential for account compromise or data theft.
RemediationAI
Upgrade FreeScout to version 1.8.213 or later. This is the primary remediation and addresses the root cause by properly escaping double-quote characters in URLs before embedding them into HTML href attributes. For organizations unable to upgrade immediately, apply the specific code fix from commit 265379b3ae343f06846adc0aa8510643d1eac2df (available at https://github.com/freescout-help-desk/freescout/commit/265379b3ae343f06846adc0aa8510643d1eac2df), which modifies the linkify() function in app/Misc/Helper.php to use HTML entity encoding (e.g., htmlspecialchars() with ENT_QUOTES flag) on URL values before insertion into href attributes. As a compensating control, restrict email submission to FreeScout to authenticated internal users only and disable external mail integration if feasible; this reduces the attack surface to insider threats but may impact help desk workflow. Additionally, enable and configure Content Security Policy (CSP) headers with script-src 'self' and object-src 'none' to limit the impact of any injected JavaScript, though this does not prevent the vulnerability itself and may require testing for application compatibility.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
FreeScout is a self-hosted PHP-based help desk application that processes inbound email messages. The vulnerability exists in the linkify() function (app/Misc/Helper.php), which converts plain-text URL strings into HTML anchor elements for rendering in email threads. The function is called after HTMLPurifier sanitization via getCleanBody(). HTMLPurifier preserves literal double-quote (" or ") characters when they appear in text content, treating them as benign literal text rather than HTML syntax. The linkify() function then wraps these URLs-including any embedded quote characters-into an unescaped href="..." attribute structure, allowing an attacker to terminate the href value prematurely and inject new HTML attributes such as onmouseover, onclick, or style. This is a classic reflected/stored XSS via improper output encoding (CWE-79), exacerbated by incomplete HTML entity escaping of URL values before embedding them into attribute context.
Know when Freescout gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
Lifecycle Timeline
3DescriptionGitHub Advisory
FreeScout is a free self-hosted help desk and shared mailbox. Prior to version 1.8.213, FreeScout's linkify() function in app/Misc/Helper.php converts plain-text URLs in email bodies into HTML anchor tags without escaping double-quote characters (") in the URL. HTMLPurifier (called first via getCleanBody()) preserves literal " characters in text nodes. linkify() then wraps URLs including those " chars inside an unescaped href="..." attribute, breaking out of the href and injecting arbitrary HTML attributes. Version 1.8.213 fixes the issue.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
File upload bypass in FreeScout 1.8.206 — patch bypass for CVE-2026-27636. PoC and patch available. CVSS 10.0.
Remote code execution in FreeScout prior to version 1.8.206 allows authenticated users to upload `.htaccess` files that
Predictable password reset tokens in FreeScout help desk before 1.8.206. Weak random number generation allows attackers
Anonymous account takeover in FreeScout help desk before 1.8.224 lets an unauthenticated attacker seize the lowest-id ac
FreeScout is a self-hosted help desk and shared mailbox. Rated critical severity (CVSS 9.0), this vulnerability is remot
FreeScout is a free help desk and shared inbox built with PHP's Laravel framework. Rated high severity (CVSS 8.6), this
FreeScout is a self-hosted help desk and shared mailbox. Rated high severity (CVSS 8.0), this vulnerability is remotely
FreeScout is an open source help desk and shared inbox built with PHP. Rated high severity (CVSS 7.1), this vulnerabilit
FreeScout is a free, self-hosted help desk and shared mailbox. Rated medium severity (CVSS 6.3), this vulnerability is r
FreeScout is a free, self-hosted help desk and shared mailbox. Rated medium severity (CVSS 6.1), this vulnerability is r
A stored cross-site scripting (XSS) vulnerability exists in FreeScout help desk software versions 1.8.208 and below, whe
Arbitrary file write in FreeScout (prior to 1.8.215) allows authenticated administrators to achieve remote code executio
EUVD-2026-24141
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB