CVE-2025-48486 Overview
CVE-2025-48486 is a stored cross-site scripting (XSS) vulnerability in FreeScout, a self-hosted help desk and shared mailbox application. The flaw exists in versions prior to 1.8.180 and stems from missing input validation and output sanitization in the \Session::flash mechanism and the __ translation helper. Authenticated users can inject script payloads that execute in other users' browsers when the affected flash messages or translated strings are rendered. The maintainers addressed the issue in version 1.8.180.
Critical Impact
Authenticated attackers can inject JavaScript that executes in agent or administrator browsers, enabling session abuse, ticket data theft, and actions performed on behalf of the victim.
Affected Products
- FreeScout versions prior to 1.8.180
- Self-hosted FreeScout help desk deployments
- FreeScout shared mailbox instances exposing agent and admin UIs
Discovery Timeline
- 2025-05-30 - CVE-2025-48486 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-48486
Vulnerability Analysis
The vulnerability is a stored XSS issue categorized under [CWE-79], improper neutralization of input during web page generation. FreeScout uses \Session::flash to persist short-lived notifications between requests and the __ helper to render localized strings. Both paths passed user-controllable content into rendered views without escaping HTML or JavaScript metacharacters.
An attacker with a low-privileged FreeScout account can supply crafted input that reaches one of these sinks. When another user loads a view that renders the flash message or translated string, the injected payload executes in that user's browser session. The scripting context runs with the victim's privileges inside the FreeScout application.
Because help desk platforms centralize customer correspondence, agent notes, and administrative controls, script execution in an agent or administrator session can be leveraged to read ticket content, exfiltrate attachments, or issue authenticated API calls. The CVSS 4.0 vector indicates user interaction is required and confidentiality impact is scoped to a subsequent system.
Root Cause
The root cause is missing input validation and output encoding in two shared rendering paths. \Session::flash stored raw user input and views emitted the value without HTML escaping. The __ translation helper similarly interpolated parameters into template strings without sanitization, allowing markup and script tags to pass through to the DOM.
Attack Vector
Exploitation requires network access to a FreeScout instance and a valid authenticated session. An attacker submits crafted content through an input flow that ultimately populates a flash message or a translated string parameter. When a victim navigates to a page that renders the tainted value, the browser parses and executes the attacker-controlled script.
The vulnerability manifests in shared rendering helpers rather than a single endpoint. Technical specifics are documented in the GitHub Security Advisory GHSA-9jpm-xrpc-cv66.
Detection Methods for CVE-2025-48486
Indicators of Compromise
- Flash message or translated string values containing <script>, onerror=, onload=, or javascript: substrings in application logs or database rows.
- Unexpected outbound requests from browsers with a FreeScout session to attacker-controlled domains.
- Ticket, user, or settings modifications performed under an agent account with no corresponding manual UI activity.
Detection Strategies
- Review FreeScout database tables and session storage for stored payloads containing HTML or JavaScript syntax in fields that feed notifications and translations.
- Deploy web application firewall rules that flag script-like tokens in POST parameters submitted to FreeScout endpoints.
- Correlate agent authentication events with subsequent privileged actions to identify sessions issuing anomalous API calls.
Monitoring Recommendations
- Enable and centralize FreeScout application and web server logs for retention and search across authenticated sessions.
- Alert on Content Security Policy (CSP) violation reports originating from FreeScout hostnames.
- Monitor administrator and agent accounts for account changes, permission escalations, or mailbox modifications following ticket interactions.
How to Mitigate CVE-2025-48486
Immediate Actions Required
- Upgrade FreeScout to version 1.8.180 or later on all self-hosted instances.
- Invalidate active sessions and require re-authentication after patching to evict any hijacked sessions.
- Audit user accounts, integrations, and API tokens created or modified before the patch was applied.
Patch Information
The FreeScout maintainers fixed the vulnerability in version 1.8.180 by adding input validation and output sanitization to the \Session::flash and __ code paths. Refer to the GitHub Security Advisory GHSA-9jpm-xrpc-cv66 for release details and affected version ranges.
Workarounds
- Restrict FreeScout access to trusted networks or VPN ranges until the upgrade is completed.
- Deploy a strict Content Security Policy that disallows inline scripts and untrusted external script sources.
- Limit account creation and lower-privileged access to reduce the pool of users capable of submitting crafted input.
# Upgrade FreeScout to the patched release
cd /var/www/freescout
php artisan freescout:after-app-update
git fetch --tags
git checkout 1.8.180
composer install --no-dev
php artisan migrate --force
php artisan freescout:clear-cache
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

