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·71 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

•12 minutes ago•CVE-2026-63221
9.4

CVE-2026-63221: SQL Injection in CodeIgniter4 Query Builder deleteBatch()

An SQL injection vulnerability exists in the Query Builder component of the CodeIgniter4 full-stack PHP framework. The vulnerability is located within the compilation logic of the batch delete operation, deleteBatch(). When an application chains where() conditions prior to calling deleteBatch(), the Query Builder fails to enforce or respect the escaping flags of the parameters bound to the WHERE clauses. Instead of passing these parameters through the database driver standard escaping logic, the compilation engine interpolates the raw, unescaped bound values directly into the compiled SQL string, allowing remote attackers to execute arbitrary SQL commands.

Amit Schendel
Amit Schendel
0 views•8 min read
•about 1 hour ago•CVE-2026-63222
7.5

CVE-2026-63222: Remote Code Execution via Path Traversal in CodeIgniter4 File Upload Handler

CVE-2026-63222 details a high-severity path traversal vulnerability in CodeIgniter4 versions prior to 4.7.4. The flaw lies within the `UploadedFile::move()` handler, which falls back to unsanitized, client-provided file names from the HTTP multipart request when a target name is not explicitly passed. An unauthenticated remote attacker can exploit this flaw to traverse arbitrary server directories, write malicious PHP payloads to the public-facing web root, and execute arbitrary code on the target system.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 2 hours ago•CVE-2026-63223
9.8

CVE-2026-63223: Unrestricted File Upload leading to Remote Code Execution in CodeIgniter4

A critical unrestricted file upload vulnerability (CWE-434) in CodeIgniter4 allows unauthenticated remote attackers to execute arbitrary code. By bypassing weak validation filters in the `is_image` and `mime_in` rules, an attacker can upload a malicious PHP payload disguised as a valid image file.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 3 hours ago•CVE-2026-67422
7.5

CVE-2026-67422: Regular Expression Denial of Service in pymdown-extensions

A high-severity Regular Expression Denial of Service (ReDoS) vulnerability in pymdown-extensions versions prior to 11.0.1 affects the Caret, Tilde, BetterEm, and MagicLink inline processors. When parsing user-supplied Markdown content containing malicious sequences of formatting delimiters, the regular expression engine is forced into catastrophic backtracking, resulting in CPU exhaustion and application denial of service.

Alon Barad
Alon Barad
3 views•5 min read
•about 4 hours ago•CVE-2026-71847
8.7

CVE-2026-71847: Use-After-Free in Ruby JSON Gem ResumableParser

A technical analysis of the use-after-free (UAF) vulnerability in the Ruby JSON gem (CVE-2026-71847) that impacts versions 2.20.0 through 2.21.1. This vulnerability occurs when parsing incomplete stream data containing duplicate keys.

Alon Barad
Alon Barad
3 views•6 min read
•about 5 hours ago•CVE-2026-71848
5.3

CVE-2026-71848: Algorithmic Complexity Denial of Service in Hono languageDetector Middleware

An Algorithmic Complexity Denial of Service (DoS) vulnerability exists in the Hono web application framework within its languageDetector middleware. From version 4.12.0 to 4.12.33, the progressive language-tag truncation routine (normalizeLanguage) performs string operations with a quadratic time complexity O(N^2) relative to the number of hyphen-separated subtags in the user-supplied language tag. This allows an unauthenticated remote attacker to cause resource exhaustion and CPU spikes, resulting in a full denial of service of the single-threaded JavaScript runtime.

Alon Barad
Alon Barad
4 views•5 min read