CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-48500

CVE-2026-48500: Unauthenticated File Upload and Resource Exhaustion in Filament Admins

Alon Barad
Alon Barad
Software Engineer

Jun 24, 2026·7 min read·145 visits

Executive Summary (TL;DR)

Unauthenticated users can exploit exposed Livewire file-upload endpoints on public pages to write arbitrary files to server storage, causing potential denial-of-service conditions.

CVE-2026-48500 is an authorization bypass vulnerability within Filament, a full-stack Laravel administration panel suite. The flaw arises from the unauthenticated exposure of Livewire's file upload RPC endpoints on guest-facing pages, allowing remote actors to upload arbitrary files to temporary storage, potentially leading to storage exhaustion and service disruption.

Vulnerability Overview

Filament is a widely adopted suite of TALL-stack administration panel components for Laravel. To provide interactive and reactive interfaces, Filament translates complex PHP-defined form layouts into front-end components executed by Laravel Livewire. This architecture relies on seamless execution of asynchronous requests, mapping user inputs on the browser directly to properties within backend PHP components.

The core threat vector lies in the unauthenticated exposure of backend endpoints. The administration system supports guest-facing interfaces, such as authentication, password recovery, and multi-factor authentication setup pages. While these entry-level views require strict isolation, the architectural design loaded the same standard form-handling capabilities used inside authenticated dashboards.

Specifically, the application failed to isolate Livewire's underlying asynchronous file-upload mechanisms. Any component implementing the base form structures inherited these upload handling endpoints. Consequently, remote unauthenticated entities gained direct, unauthorized access to trigger temporary file-upload procedures on pages where no file fields existed, classifying this flaw as CWE-862 (Missing Authorization).

Root Cause Analysis

The root cause of this vulnerability lies in the class and trait composition model utilized by the Filament framework. In Filament version 3.x, components constructed forms using the InteractsWithForms trait. In versions 4.x and 5.x, this logic was abstracted into the InteractsWithSchemas trait. These traits are designed to provide support for any potential form field, including file inputs, markdown editors, and rich text fields that support media attachments.

To satisfy the structural requirements of dynamic file uploading, the form and schema traits composed Livewire's native WithFileUploads trait. Under Livewire's operational design, importing this trait automatically registers public Remote Procedure Call (RPC) methods. These methods include _startUpload, _finishUpload, _uploadErrored, and _removeUpload, which coordinate raw file streams over AJAX.

Because guest-facing classes such as Login, Register, and ResetPassword utilize Filament's form and schema behaviors, they implicitly imported the WithFileUploads trait and its associated RPC endpoints. Livewire operates under the assumption that if the parent component carries the trait, the endpoints are intended to be accessible. There was no native mechanism in place to verify whether the rendered layout actually contained a field configured to accept file streams. This created a validation gap where unauthenticated users could successfully interact with file-upload methods.

Code-Level Analysis

The remediation implemented across the different branches addresses the authorization gap by overriding the default behavior of the Livewire file-upload endpoints. Rather than globally disabling the traits, the patch introduces dynamic context validation via specific restriction traits. In Filament 3.x, the framework introduced the RestrictsFileUploadsToFormComponents trait, while 4.x and 5.x implemented RestrictsFileUploadsToSchemaComponents.

These newly introduced traits override the public Livewire endpoints and perform real-time introspection before allowing the execution of parent operations. When a call to _startUpload or _finishUpload occurs, the trait evaluates the target field name using the schema structure. The method isFileUploadForFormComponent or isFileUploadForSchemaComponent checks the path against active fields.

The trait executes a structured validation routine as seen in the following logic:

// Overridden start upload method within the patch
public function _startUpload($name, $fileInfo, $isMultiple): void
{
    // Enforce authorization validation prior to proceeding with Livewire's base mechanism
    abort_unless($this->isFileUploadForFormComponent($name), 403);
 
    $this->baseStartUpload($name, $fileInfo, $isMultiple);
}

The routine flattens the currently registered form components, matches the component state path to the exact key provided in the RPC request, and validates that the matched component is a legitimate instance of BaseFileUpload or a class implementing HasFileAttachments. If the path is missing or points to a non-upload component, the request fails with a HTTP 403 Forbidden status. This validation is complete and prevents arbitrary uploads because the schema validation is tied to backend component states that cannot be falsified by the client.

Attack Methodology and Exploit Mechanics

Exploitation of CVE-2026-48500 requires minimal sophistication as it relies on low-complexity, unauthenticated HTTP requests targeting public-facing routes. An attacker begins by identifying a Filament application running an affected version and locating any guest-facing page, such as /admin/login. The attacker does not need any credentials or valid session tokens.

The attack payload consists of a targeted HTTP POST request directed at the generic Livewire update route, typically /livewire/update. The request specifies the public component's unique snapshot ID and initiates an RPC method call targeting the _startUpload endpoint, using a fabricated field parameter like data.photo or data.attachment:

POST /livewire/update HTTP/1.1
Host: target-application.com
Content-Type: application/json
X-Livewire: true
 
{
  "components": [
    {
      "snapshot": "{\"id\":\"login-component-id\",\"name\":\"filament.pages.auth.login\"}",
      "calls": [
        {
          "method": "_startUpload",
          "params": [
            "data.photo",
            [
              {
                "name": "exhaust_payload.bin",
                "size": 52428800,
                "type": "application/octet-stream"
              }
            ],
            false
          ]
        }
      ]
    }
  ]
}

Upon receipt of this request, the vulnerable backend processes the RPC command and generates a valid, signed upload path. The attacker then submits the file content to the designated temporary directory. By running multiple concurrent requests, an attacker can write high-volume garbage data directly into storage/app/livewire-tmp/, bypassing all application-level input constraints and authorization policies.

Security Impact and Threat Modeling

The security impact of CVE-2026-48500 is classified under Integrity and Availability vectors. Although the vulnerability does not lead directly to unauthenticated remote code execution because files are restricted to Laravel's internal temporary directory with randomized filenames, the operational consequences can compromise system availability.

The primary threat vector is local storage depletion on the web hosting environment. Unchecked accumulation of high-volume uploads within storage/app/livewire-tmp/ can quickly consume all remaining disk sectors. When storage is fully exhausted, core server processes, including logging utilities and databases (e.g., MySQL, PostgreSQL), will fail to write transactions or lock files, causing immediate database corruption or complete operating system crashes.

In cloud environments utilizing remote storage drivers, such as Amazon S3, Google Cloud Storage, or Microsoft Azure Blob Storage, the vulnerability translates into direct financial and operational impact. Attackers can trigger rapid API requests and write processes to cloud buckets, driving up service integration costs and depleting execution transfer quotas. This scenario qualifies under MITRE ATT&CK as Resource Hijacking (T1496) and Network Denial of Service (T1498).

Remediation and Long-term Prevention

Remediation of CVE-2026-48500 requires immediate software dependency updates. Security administrators must execute Composer updates to acquire the corrected package versions. The vulnerability has been resolved in versions 3.3.52, 4.11.5, and 5.6.5.

# Execution steps to upgrade the Filament core library
composer update filament/filament

If an immediate upgrade is not feasible, administrators should enforce temporary request-filtering controls at the reverse proxy or web application firewall (WAF) layer. A custom rule can inspect POST payloads directed at /livewire/update for the occurrence of the _startUpload or _finishUpload strings. If these methods are called in conjunction with components representing public authentication controllers, the request should be immediately dropped with a 403 status.

Developers creating custom public Livewire components must avoid implementing broad file handling traits unless strict validation checks are embedded inside the mount lifecycle. By applying the RestrictsFileUploadsToSchemaComponents or RestrictsFileUploadsToFormComponents trait, custom panels can ensure that they only accept file uploads when the active UI schema explicitly defines a compatible and authorized field.

Official Patches

filamentphpOfficial vendor advisory and release notes

Fix Analysis (3)

Technical Appendix

CVSS Score
6.5/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
EPSS Probability
0.21%
Top 89% most exploited

Affected Systems

Filament Admin Panels for Laravel (filament/filament)

Affected Versions Detail

Product
Affected Versions
Fixed Version
filament/filament
filamentphp
>= 3.0.0, < 3.3.523.3.52
filament/filament
filamentphp
>= 4.0.0, < 4.11.54.11.5
filament/filament
filamentphp
>= 5.0.0, < 5.6.55.6.5
AttributeDetail
CWE IDCWE-862
Attack VectorNetwork (AV:N)
CVSS v3.1 Score6.5
EPSS Score0.00207 (10.69th percentile)
ImpactStorage depletion, Denial of Service (DoS)
Exploit StatusPoC / Conceptual
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1068Exploitation for Privilege Escalation
Privilege Escalation
T1496Resource Hijacking
Impact
T1498Network Denial of Service
Impact
CWE-862
Missing Authorization

The application does not perform authorization checks when an actor attempts to access a function or resource, specifically exposing upload endpoints on routes where files should not be submitted.

References & Sources

  • [1]GitHub Security Advisory GHSA-44wp-g8f4-f4v5
  • [2]CVE-2026-48500 Authority Record

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 10 hours ago•GHSA-JHJP-4C2Q-XMX4
8.1

GHSA-JHJP-4C2Q-XMX4: Falco k8saudit Plugin Ruleset Bypass via initContainers and ephemeralContainers

A security feature bypass vulnerability in the Falco k8saudit plugin (and its cloud-specific variants) allowed privileged workloads to run undetected. This bypass occurred because the plugin's default extraction logic and rules only evaluated standard containers, completely omitting initContainers and ephemeralContainers.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 11 hours ago•CVE-2026-61630
4.2

CVE-2026-61630: Time-Based One-Time Password (TOTP) Reuse/Replay in nginx-ignition

nginx-ignition is a web-based user interface for managing the Nginx web server. In versions 2.33.0 through 2.35.0, the application is vulnerable to an improper authentication flaw (CWE-287) in its Multi-Factor Authentication (MFA) implementation. The stateless validation of Time-Based One-Time Passwords (TOTP) allows an attacker to reuse a captured, active verification code multiple times within the standard 30-second validity window, successfully bypassing secondary authentication checks if primary credentials are known.

Amit Schendel
Amit Schendel
9 views•5 min read
•about 12 hours ago•CVE-2026-61629
7.5

CVE-2026-61629: CPU Amplification Denial of Service via ParseAcceptLanguage Underscore Bypass

A vulnerability exists in the i18n middleware of nginx-ignition, enabling CPU amplification attacks. By transmitting a crafted Accept-Language header containing malformed tags separated by underscores, an unauthenticated remote attacker can bypass the length-guard threshold of the underlying Go parsing library. Normalization of underscores to hyphens occurs after the initial validation checks, forcing the parser into expensive quadratic-time loops that consume 100% of available CPU resources. This leads to a complete denial of service for the administrative API and potentially degrades the availability of the hosting system. This vulnerability has been resolved in version 2.40.1.

Alon Barad
Alon Barad
6 views•7 min read
•about 13 hours ago•CVE-2026-61628
8.1

CVE-2026-61628: Unauthenticated Admin Account Creation via Onboarding Race Condition in Nginx Ignition

Nginx Ignition prior to version 2.41.1 contains a Time-of-Check to Time-of-Use (TOCTOU) race condition in its unauthenticated onboarding API endpoint. This flaw allows remote, unauthenticated attackers to register an administrative account by sending concurrent HTTP requests during the initial system configuration phase, bypassing the check meant to restrict onboarding to a single initial administrator.

Amit Schendel
Amit Schendel
7 views•6 min read
•about 19 hours ago•CVE-2026-61687
7.1

CVE-2026-61687: OAuth State Validation Bypass and Login CSRF in Hatchet

A logic error in Hatchet's OAuth state validation mechanism allows unauthenticated remote attackers to bypass state parameter verification. By submitting an empty state parameter, attackers can exploit an equality collision with cleared session keys, facilitating Login Cross-Site Request Forgery (Login CSRF) or Session Fixation.

Amit Schendel
Amit Schendel
10 views•10 min read
•3 days ago•CVE-2026-58197
8.8

CVE-2026-58197: Host Escape and Lateral Movement via Insecure Container Network Defaults in ToolHive

A high-severity access control vulnerability in ToolHive CLI before v0.30.1 and ToolHive Studio before v0.38.0 allows local containerized MCP servers to bypass network isolation. This enables malicious workloads to establish TCP/IP connections to administrative and control plane endpoints exposed on the host loopback interface.

Amit Schendel
Amit Schendel
12 views•8 min read