VU#650657: Livewire Filemanager contains an insecure .php component that allows for unauthenticated RCE in Laravel Products

VU#650657: Livewire Filemanager contains an insecure .php component that allows for unauthenticated RCE in Laravel Products

Overview

A vulnerability, tracked as CVE-2025-14894, has been discovered within Livewire Filemanager, a tool designed for usage within Laravel applications. The Livewire Filemanager tool allows for users to upload various files, including PHP files, and host them within the Laravel application. When a user uploads a PHP file to the application, it can be accessed and executed by visiting the web-accessible file hosting directory. This enables an attacker to create a malicious PHP file, upload it to the application, then force the application to execute it, enabling unauthenticated arbitrary code execution on the host device.

Description

Livewire Filemanager is a tool designed to be embedded into Laravel applications, allowing for files to be uploaded, stored and managed. Laravel is a PHP framework, intended for web application development. A vulnerability has been discovered within the Livewire Filemanager that enables remote code execution (RCE) by uploading a malicious PHP file. This vulnerability is tracked as CVE-2025-14894, and its description is below:

Livewire Filemanager, commonly used in Laravel applications, contains LivewireFilemanagerComponent.php, which does not perform file type and MIME validation, allowing for RCE through upload of a malicious php file that can then be executed via the /storage/ URL if a commonly performed setup process within Laravel applications has been completed.

As a note, Livewire Filemanager defines validation of file types to be out of scope, and recommends users perform their own file type validation. However, the ability to remotely execute files uploaded through the web application is what actually enables executing the malware.

During default usage of Livewire Filemanager, files can be accessed via the publicly accessible “storage/app/public” URL. This occurs if the php artisan storage:link command has previously been executed, enabling web serving. If a malicious PHP file is uploaded to the file manager, it can then be accessed and executed from that URL when passed a user ID alongside the request, enabling remote code execution on the target device.

Impact

The vulnerability enables unauthenticated remote code execution as the web server user, enabling full read and write of files accessible to that user, as well as the capability to further pivot and compromise connecting devices, making CVE-2025-14894 a high impact vulnerability.

Solution

At the time of writing, the vendor has not acknowledged the vulnerability. CERT/CC recommends using increased caution with Laravel Filemanager, and to check if the php artisan storage:link command has previously been executed, and if so, consider removing the web serving capability of the tool.

Acknowledgements

Thanks to the reporter HackingByDoing. This document was written by Christopher Cullen.