{"id":"CVE-2024-47823","state":"PUBLISHED","title":"Livewire Remote Code Execution (RCE) on File Uploads","description":"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.","publishedAt":"2024-10-08T17:48:36.496Z","updatedAt":"2025-07-17T18:22:08.024Z","severity":{"score":7.7,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","source":"GitHub_M"},"assigner":"GitHub_M","products":["livewire livewire"],"affected":[{"vendor":"livewire","product":"livewire","versions":[{"version":">= 3.0.0-beta.1, < 3.5.2","status":"affected"},{"version":"< 2.12.7","status":"affected"}]}],"references":["https://github.com/livewire/livewire/security/advisories/GHSA-f3cx-396f-7jqp","https://github.com/livewire/livewire/pull/8624","https://github.com/livewire/livewire/commit/70503b79f5db75a1eac9bf55826038a6ee5a16d5","https://github.com/livewire/livewire/commit/cd168c6212ea13d13b82b3132485741f82d9fad9"],"weaknesses":["CWE-20"],"ingestedAt":"2026-10-29T20:07:56.516Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/47xxx/CVE-2024-47823.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2024-47823","state":"PUBLISHED","datePublished":"2024-10-08T17:48:36.496Z","dateUpdated":"2025-07-17T18:22:08.024Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2024-10-03T14:06:12.640Z"},"containers":{"cna":{"title":"Livewire Remote Code Execution (RCE) on File Uploads","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"livewire","product":"livewire","versions":[{"version":">= 3.0.0-beta.1, < 3.5.2","status":"affected"},{"version":"< 2.12.7","status":"affected"}]}],"references":[{"url":"https://github.com/livewire/livewire/security/advisories/GHSA-f3cx-396f-7jqp","name":"https://github.com/livewire/livewire/security/advisories/GHSA-f3cx-396f-7jqp","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/livewire/livewire/pull/8624","name":"https://github.com/livewire/livewire/pull/8624","tags":["x_refsource_MISC"]},{"url":"https://github.com/livewire/livewire/commit/70503b79f5db75a1eac9bf55826038a6ee5a16d5","name":"https://github.com/livewire/livewire/commit/70503b79f5db75a1eac9bf55826038a6ee5a16d5","tags":["x_refsource_MISC"]},{"url":"https://github.com/livewire/livewire/commit/cd168c6212ea13d13b82b3132485741f82d9fad9","name":"https://github.com/livewire/livewire/commit/cd168c6212ea13d13b82b3132485741f82d9fad9","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"PRESENT","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"HIGH","vulnIntegrityImpact":"HIGH","vulnAvailabilityImpact":"HIGH","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","baseScore":7.7,"baseSeverity":"HIGH","vectorString":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","version":"4.0"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-20","lang":"en","description":"CWE-20: Improper Input Validation","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2025-07-17T18:22:08.024Z"},"source":{"advisory":"GHSA-f3cx-396f-7jqp","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","affected":[{"vendor":"laravel","product":"livewire","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThan":"3.5.2","versionType":"custom"}],"cpes":["cpe:2.3:a:laravel:livewire:*:*:*:*:*:wordpress:*:*"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2024-10-08T18:28:08.506159Z","id":"CVE-2024-47823","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-10-08T18:35:08.099Z"}}]}}}