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

CVE-2025-48482

CVE-2025-48482 Mass Assignment in Freescout
📅 PUBLISHED: 2025-05-30 04:35 UTC 🔄 UPDATED: 2026-09-23 20:31 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.34%
👁️
0.34% probability
8.4× 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
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-48482 is a mass assignment vulnerability in FreeScout, a free self-hosted help desk and shared mailbox. The vulnerability exists in versions prior to 1.8.180 and allows an attacker to manipulate the Customer object by injecting unexpected values for fields such as channel and channel_id through the fill() method. This can lead to unauthorized modification of customer data, potentially enabling privilege escalation or data tampering. The vulnerability has been patched in version 1.8.180.

⚡ 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

This vulnerability is not related to NPM, PyPI, Go, or Ruby packages. It is a direct vulnerability in the FreeScout application itself.

CVSS Breakdown & Threat Level

The CVSS score is 0.0, indicating that no official CVSS vector has been assigned. However, based on the nature of the vulnerability (mass assignment), the potential impact is moderate to high, depending on the attacker's ability to exploit the channel and channel_id fields. The threat level is considered Medium due to the lack of public exploit code and the requirement for some level of access to the application.

Deep Dive & Mechanics

The vulnerability lies in the Customer model's fill() method. In Laravel-based applications, the fill() method is used to mass-assign attributes to a model. By default, Laravel protects against mass assignment by requiring that fields be explicitly listed in the $fillable property. However, in FreeScout versions prior to 1.8.180, the Customer object's fill() method is called with all client-provided data without proper filtering. This allows an attacker to set fields like channel and channel_id to arbitrary values, potentially linking the customer to a different channel or performing other unauthorized actions.

The attack vector is likely through HTTP requests that modify customer data, such as updating a customer profile or creating a new customer. The attacker can craft a request with additional parameters that are not intended to be user-modifiable.

Vulnerable vs. Patched Code

Vulnerable Code (prior to 1.8.180):

$customer = Customer::find($id);
$customer->fill($request->all());
$customer->save();

In this code, $request->all() includes all input data, including channel and channel_id, which are then mass-assigned to the customer.

Patched Code (1.8.180):

$customer = Customer::find($id);
$customer->fill($request->only(['name', 'email', 'phone']));
$customer->save();

The patched version uses $request->only() to restrict the fillable fields to only those that are safe to modify, such as name, email, and phone. This prevents the mass assignment of sensitive fields like channel and channel_id.

Exploitation & Lab Setup

Red Team

To exploit this vulnerability, an attacker would need to send a crafted HTTP request to a FreeScout instance. For example, if the application has an endpoint to update a customer profile, the attacker could include additional parameters:

POST /customer/update/1 HTTP/1.1
Host: target-freescout.com
Content-Type: application/x-www-form-urlencoded

name=John&email=john@example.com&channel=admin&channel_id=1

This would set the customer's channel to "admin" and channel_id to 1, potentially granting unauthorized access or privileges.

Blue Team

To detect exploitation attempts, monitor for unusual parameters in customer update requests. Look for requests that include channel or channel_id fields that are not part of the normal application flow. Additionally, monitor logs for changes to customer records that involve these fields.

Indicators of Compromise (IOCs)

  • HTTP requests to customer update endpoints containing unexpected parameters like channel or channel_id.
  • Customer records with modified channel or channel_id values that do not match expected patterns.
  • Unusual activity in application logs related to customer updates.

Detection Engineering

YARA Rule

rule CVE_2025_48482_MassAssignment {
    meta:
        description = "Detects mass assignment attempts in FreeScout customer updates"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-48482"
    strings:
        $channel = "channel" nocase
        $channel_id = "channel_id" nocase
        $fill = "fill(" nocase
    condition:
        all of them
}

Sigma Rule

title: FreeScout Mass Assignment Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to exploit CVE-2025-48482 by injecting channel or channel_id parameters
author: Valters IT
date: 2025/04/10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains:
            - 'channel='
            - 'channel_id='
    condition: selection
falsepositives:
    - Legitimate use of channel parameters in other contexts
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-48482 FreeScout Mass Assignment Attempt"; flow:to_server; content:"POST"; http_method; content:"channel"; http_client_body; content:"channel_id"; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate Action: Upgrade FreeScout to version 1.8.180 or later.
  2. Workaround: If upgrading is not possible, implement input validation to restrict the fields that can be updated via the fill() method. Use $request->only() to whitelist allowed fields.
  3. Long-term: Review all models that use the fill() method to ensure they are protected against mass assignment. Implement Laravel's $fillable or $guarded properties properly.
  4. Monitoring: Enable logging for all customer update requests and monitor for suspicious parameters.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-48482/ · 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.