Skip to main content

FreeScout CVE-2026-107393

| EUVDEUVD-2026-95211 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-08 GitHub_M
6.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Identify FreeScout instance behind Cloudflare
  2. Delivery
    Send failed logins with spoofed CF-Connecting-IP HTML payload
  3. Exploit
    Payload stored unvalidated in activity log
  4. Execution
    LogsMonitor emails unescaped value to admin
  5. Impact
    Admin opens email, injected HTML/script executes

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

Exploitation requires the FreeScout APP_CLOUDFLARE_IS_USED setting to be enabled (a non-default, Cloudflare-fronted deployment mode) so that the CF-Connecting-IP header is trusted; the attacker triggers logging via failed login attempts, no authentication needed. Firing the payload additionally requires an administrator to open the LogsMonitor alert email in a client that renders HTML (UI:R) - the attack is blind, with no attacker feedback. Limiting factors: both the Cloudflare configuration and the LogsMonitor email-alert feature must be active, and the admin must open the mail; instances not behind Cloudflare or with CF integration disabled are not exploitable.

Impact

This is a stored/blind cross-site scripting issue (CWE-79) with a moderate CVSS 3.1 base score of 6.1 (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N). The network vector and PR:N correctly reflect that the injection point - the CF-Connecting-IP header during a failed login - is reachable by an unauthenticated remote attacker, but UI:R is the dominant limiting factor: the payload only fires when an administrator opens the LogsMonitor alert email in an HTML-rendering client. Two further constraints materially lower real-world risk and are not captured by the headline score: exploitation requires the non-default APP_CLOUDFLARE_IS_USED deployment mode to be enabled, and the attacker gets no feedback (blind delivery via email), so this favors targeted abuse of a known FreeScout+Cloudflare install over opportunistic mass exploitation. No EPSS score, KEV listing, or SSVC decision data was supplied in the input, so automatability and exploitation-maturity signals cannot be cross-referenced - the only corroborating artifact is the vendor fix commit, which is a patch, not an exploit. Net: a legitimately valid but conditional issue that should be patched, not an emergency; treat it as medium priority rather than a high-CVSS critical. Note the AC:L in the supplied vector arguably understates the Cloudflare-mode precondition - see assessed vector below.

Exploit ScenarioDerived

An attacker who knows a FreeScout instance sits behind Cloudflare submits failed login attempts with a forged CF-Connecting-IP header containing HTML/JavaScript; FreeScout trusts and logs the spoofed value. When the scheduled LogsMonitor job emails the activity summary to an administrator, the unescaped payload is embedded in the message and executes the moment the admin opens it in an HTML-capable mail client. No public exploit code was identified in the input - only the vendor patch commit is available.

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

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

Alert me

AnalysisAIv1 – Oct 08, 2026

HTML injection in FreeScout's LogsMonitor administrator alert emails lets an unauthenticated remote attacker plant markup that executes when an administrator opens the notification, because the spoofed client IP recorded during failed logins is written into the email body without escaping. Exploitation requires the non-default APP_CLOUDFLARE_IS_USED setting to be enabled, so that the attacker-controlled CF-Connecting-IP header is trusted and persisted in the activity log; the instance must also have LogsMonitor email alerts active and the admin must view the message in an HTML-capable client (blind attack, no attacker feedback). CVSS 3.1 base score is 6.1 (assessed vector AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N); there is no public exploit identified at time of analysis and the issue is fixed in FreeScout 1.8.235.

RemediationAI

Upgrade to FreeScout 1.8.235, the vendor-released fixed version (https://github.com/freescout-help-desk/freescout/releases/tag/1.8.235); the patch commit 0f41f5cabb581de156ec8eb344ff6c0e6e0cc66a applies htmlspecialchars() to the log title, event description and properties in app/Console/Commands/LogsMonitor.php and adds a Helper::isValidIp($_SERVER['HTTP_CF_CONNECTING_IP']) check in the Symfony Request override, per advisory GHSA-9cm3-qvj2-8hg4. If immediate upgrade is not possible, the highest-value compensating control is to disable APP_CLOUDFLARE_IS_USED so the spoofable CF-Connecting-IP header is no longer trusted - the trade-off is that client IP resolution behind Cloudflare falls back to the proxy address, degrading accurate logging, rate limiting and any IP-based access rules. A lower-impact alternative is to keep Cloudflare mode but lock the origin so it only accepts traffic from Cloudflare's published IP ranges via firewall rules or Cloudflare Tunnel with authenticated origin pulls, which prevents attackers from reaching the application directly to forge the header; this depends on correct network configuration and can break direct/canary access. Reducing exposure of the LogsMonitor email alerts (disabling or narrowing alert recipients) and ensuring administrators read alerts in a client that does not render remote HTML also removes the trigger condition, at the cost of losing monitoring visibility or convenience. Note that no patched-version substitution is valid for the AF/AC dependency: the validation fix is only present from 1.8.235 onward.

Affected VersionsENISA

freescout < 1.8.235

Affected Packages

euvd freescout fix: 1.8.235

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

Root cause is CWE-79 (improper neutralization of input during web page generation, i.e. cross-site scripting), realized here as a stored/blind variant delivered through email rather than a browser page. FreeScout ships an override of Symfony HttpFoundation's Request class (overrides/symfony/http-foundation/Request.php); its getClientIps() method is meant to resolve the true client address from proxy headers. When the Cloudflare-fronted deployment mode (APP_CLOUDFLARE_IS_USED) is enabled, that code path read $_SERVER['HTTP_CF_CONNECTING_IP'] and trusted whatever value the client supplied, without validating it as an IP address. Failed authentication attempts cause FreeScout to write the resolved client IP into the ActivityLog, so the attacker-controlled string becomes stored data. The LogsMonitor console command (app/Console/Commands/LogsMonitor.php) then assembles an HTML email body from those activity records, concatenating log titles, event descriptions and the properties blob directly into markup without htmlspecialchars(). The net effect is HTML/script injection into an administrator-facing email. The fix commit (0f41f5cabb581de156ec8eb344ff6c0e6e0cc66a) wraps the log title, event description and properties in htmlspecialchars() and gates HTTP_CF_CONNECTING_IP behind Helper::isValidIp(). The CPE cpe:2.3:a:freescout-help-desk:freescout:*:*:*:*:*:*:*:* covers all FreeScout releases, with the affected range being everything before 1.8.235. The CVSS vector confirms remote, unauthenticated reachability (AV:N/PR:N) but requires an administrator to open the alert email (UI:R), and the scope change (S:C) reflects that injected content executes in the administrator's mail client context while compromising only low confidentiality and integrity (C:L/I:L), with no availability impact.

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

Vendor (GitHub_M) PRIMARY 6.1 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 4.7 MEDIUM

Unauthenticated injection point (PR:N) but AC:H because the non-default Cloudflare mode must be enabled and an admin must open an HTML-rendering client (UI:R); scope changes into the mail client (S:C) with low C/I.

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Oct 08, 2026 - 21:17 EUVD

DescriptionCVE.org

FreeScout is a self-hosted help desk and shared mailbox. Prior to 1.8.235, when APP_CLOUDFLARE_IS_USED is enabled, FreeScout trusts an unvalidated CF-Connecting-IP header during failed login attempts and stores the spoofed value in the activity log. LogsMonitor inserts the value into an administrator alert email without HTML escaping, allowing injected HTML to execute when an administrator opens the email. This issue is fixed in version 1.8.235.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Low
niche self-hosted open-source help desk, limited enterprise footprint
Data Quality
5 sources
Confidence: Medium

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.2%
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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

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