Skip to main content

FreeScout CVE-2026-40565

| EUVDEUVD-2026-24141 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-04-21 GitHub_M
6.1
CVSS 3.1 · GitHub Advisory
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Send email with URL containing unescaped quotes
  2. Delivery
    Email stored in FreeScout database
  3. Exploit
    User views email thread
  4. Install
    linkify() converts URL to unescaped href attribute
  5. C2
    HTML/JavaScript injected into DOM
  6. Execute
    Attacker payload executes in user's browser context
  7. Impact
    Session 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

freescout < 1.8.213

Affected Packages

euvd freescout fix: 1.8.213

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

GitHub Advisory PRIMARY 6.1 MEDIUM
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

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

3
Patch released
Apr 22, 2026 - 17:34 nvd
Patch available
Patch available
Apr 21, 2026 - 17:01 EUVD
CVE Published
Apr 21, 2026 - 15:52 nvd
MEDIUM 6.1

DescriptionGitHub 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

EPSS Score
0.0%
Top 92% exploitable
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2026-28289 CRITICAL POC
10.0 Mar 03

File upload bypass in FreeScout 1.8.206 — patch bypass for CVE-2026-27636. PoC and patch available. CVSS 10.0.

CVE-2026-27636 HIGH POC
8.8 Feb 25

Remote code execution in FreeScout prior to version 1.8.206 allows authenticated users to upload `.htaccess` files that

CVE-2026-27637 CRITICAL POC
9.8 Feb 25

Predictable password reset tokens in FreeScout help desk before 1.8.206. Weak random number generation allows attackers

CVE-2026-53595 CRITICAL POC
9.4 Jul 20

Anonymous account takeover in FreeScout help desk before 1.8.224 lets an unauthenticated attacker seize the lowest-id ac

CVE-2024-29185 CRITICAL POC
9.0 Mar 22

FreeScout is a self-hosted help desk and shared mailbox. Rated critical severity (CVSS 9.0), this vulnerability is remot

CVE-2025-58163 HIGH POC
8.6 Sep 03

FreeScout is a free help desk and shared inbox built with PHP's Laravel framework. Rated high severity (CVSS 8.6), this

CVE-2024-29184 HIGH POC
8.0 Mar 22

FreeScout is a self-hosted help desk and shared mailbox. Rated high severity (CVSS 8.0), this vulnerability is remotely

CVE-2024-28186 HIGH POC
7.1 Mar 12

FreeScout is an open source help desk and shared inbox built with PHP. Rated high severity (CVSS 7.1), this vulnerabilit

CVE-2024-34698 MEDIUM POC
6.3 May 14

FreeScout is a free, self-hosted help desk and shared mailbox. Rated medium severity (CVSS 6.3), this vulnerability is r

CVE-2024-34697 MEDIUM POC
6.1 May 14

FreeScout is a free, self-hosted help desk and shared mailbox. Rated medium severity (CVSS 6.1), this vulnerability is r

CVE-2026-32754 CRITICAL
9.3 Mar 19

A stored cross-site scripting (XSS) vulnerability exists in FreeScout help desk software versions 1.8.208 and below, whe

CVE-2026-41193 CRITICAL
9.1 Apr 21

Arbitrary file write in FreeScout (prior to 1.8.215) allows authenticated administrators to achieve remote code executio

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy