CVE-2024-47823

Livewire is a full-stack framework for Laravel that allows for dynamic UI components without leaving PHP. In livewire/livewire prior to `2.12.7` and `v3.5.2`, the file extension of an uploaded file is guessed based on the MIME type. As a result, the actual file extension from the file name is not validated. An attacker can therefore bypass the validation by uploading a file with a valid MIME type (e.g., `image/png`) and a “.php” file extension. If the following criteria are met, the attacker can carry out an RCE attack: 1. Filename is composed of the original file name using `$file->getClientOriginalName()`. 2. Files stored directly on your server in a public storage disk. 3. Webserver is configured to execute “.php” files. This issue has been addressed in release versions `2.12.7` and `3.5.2`. All users are advised to upgrade. There are no known workarounds for this vulnerability.
CVSS

No CVSS.

Configurations

No configuration.

History

10 Oct 2024, 00:15

Type Values Removed Values Added
References
  • () https://github.com/livewire/livewire/commit/cd168c6212ea13d13b82b3132485741f82d9fad9 -
  • () https://github.com/livewire/livewire/pull/8624 -
Summary
  • (es) Livewire es un framework full-stack para Laravel que permite componentes de UI dinámicos sin salir de PHP. En livewire/livewire `< v3.5.2`, la extensión de archivo de un archivo cargado se adivina en función del tipo MIME. Como resultado, la extensión de archivo real del nombre de archivo no se valida. Por lo tanto, un atacante puede eludir la validación cargando un archivo con un tipo MIME válido (por ejemplo, `image/png`) y una extensión de archivo “.php”. Si se cumplen los siguientes criterios, el atacante puede llevar a cabo un ataque RCE: 1. El nombre de archivo está compuesto por el nombre de archivo original utilizando `$file->getClientOriginalName()`. 2. Archivos almacenados directamente en su servidor en un disco de almacenamiento público. 3. El servidor web está configurado para ejecutar archivos “.php”. Este problema se ha solucionado en la versión de lanzamiento 3.5.2. Se recomienda a todos los usuarios que actualicen. No existen workarounds para esta vulnerabilidad.
Summary (en) Livewire is a full-stack framework for Laravel that allows for dynamic UI components without leaving PHP. In livewire/livewire `< v3.5.2`, the file extension of an uploaded file is guessed based on the MIME type. As a result, the actual file extension from the file name is not validated. An attacker can therefore bypass the validation by uploading a file with a valid MIME type (e.g., `image/png`) and a “.php” file extension. If the following criteria are met, the attacker can carry out an RCE attack: 1. Filename is composed of the original file name using `$file->getClientOriginalName()`. 2. Files stored directly on your server in a public storage disk. 3. Webserver is configured to execute “.php” files. This issue has been addressed in release version 3.5.2. All users are advised to upgrade. There are no known workarounds for this vulnerability. (en) Livewire is a full-stack framework for Laravel that allows for dynamic UI components without leaving PHP. In livewire/livewire prior to `2.12.7` and `v3.5.2`, the file extension of an uploaded file is guessed based on the MIME type. As a result, the actual file extension from the file name is not validated. An attacker can therefore bypass the validation by uploading a file with a valid MIME type (e.g., `image/png`) and a “.php” file extension. If the following criteria are met, the attacker can carry out an RCE attack: 1. Filename is composed of the original file name using `$file->getClientOriginalName()`. 2. Files stored directly on your server in a public storage disk. 3. Webserver is configured to execute “.php” files. This issue has been addressed in release versions `2.12.7` and `3.5.2`. All users are advised to upgrade. There are no known workarounds for this vulnerability.

08 Oct 2024, 18:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-10-08 18:15

Updated : 2024-10-10 12:56


NVD link : CVE-2024-47823

Mitre link : CVE-2024-47823

CVE.ORG link : CVE-2024-47823


JSON object : View

Products Affected

No product.

CWE
CWE-20

Improper Input Validation