[Security] Bump livewire/livewire from 3.4.12 to 3.6.4
Bumps livewire/livewire from 3.4.12 to 3.6.4. This update includes security fixes.
Vulnerabilities fixed
Livewire Remote Code Execution on File Uploads In livewire/livewire prior to
v2.12.7andv3.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:
- Filename is composed of the original file name using
$file->getClientOriginalName()- Files stored directly on your server in a public storage disk
- Webserver is configured to execute “.php” files
PoC
In the following scenario, an attacker could upload a file called
shell.phpwith animage/pngMIME type and execute it on the remote server.class SomeComponent extends Component { use WithFileUploads; #[Validate('image|extensions:png')] public $file; public function save() { $this->validate(); </tr></table>
... (truncated)
Patched versions: 2.12.7; 3.5.2 Affected versions: = 3.0.0-beta.1, < 3.5.2
Livewire is vulnerable to remote command execution during component property update hydration
Impact
In Livewire v3 (≤ 3.6.3), a vulnerability allows unauthenticated attackers to achieve remote command execution in specific scenarios. The issue stems from how certain component property updates are hydrated. This vulnerability is unique to Livewire v3 and does not affect prior major versions. Exploitation requires a component to be mounted and configured in a particular way, but does not require authentication or user interaction.
Patches
This issue has been patched in Livewire v3.6.4. All users are strongly encouraged to upgrade to this version or later as soon as possible.
Workarounds
There is no known workaround at this time. Users are strongly advised to upgrade to a patched version immediately.
Resources
No public references available at this time to avoid exposure. Details will be published after a responsible disclosure window.
Patched versions: 3.6.4 Affected versions: >= 3.0.0-beta.1, < 3.6.4
Release notes
Sourced from livewire/livewire's releases.
v3.6.4
What's Changed
- Fix property update hydration by
@joshhanleyFull Changelog: https://github.com/livewire/livewire/compare/v3.6.3...v3.6.4
v3.6.3
What's Changed
- Fix indentation by
@Rattonein livewire/livewire#9169- Fix typo in modal.js by
@devhammedin livewire/livewire#9175- Fix docs save Method by Removing Unused
$postVariable by@ducaaleyarein livewire/livewire#9185- Fix docs typo in commit success params by
@danharrinin livewire/livewire#9178- Converts
@testtotest_for PHPUNIT 12 support by@realpokein livewire/livewire#9213- Update
forms.mdby@marktinsleyin livewire/livewire#9243- Revert breaking change to Enum validation in 3.6.2 by
@dalboin livewire/livewire#9268- Fix query string history state error handling by
@joshhanleyin livewire/livewire#9278- Fix
resetExcept()to not reset all when all properties supplied by@liamduckettin livewire/livewire#9117- Update enum query parameter to set
nullfor invalid values when nullable by@abduselam1in livewire/livewire#9140- Add PHPDoc types to Testable by
@AJenboin livewire/livewire#9219New Contributors
@devhammedmade their first contribution in livewire/livewire#9175@ducaaleyaremade their first contribution in livewire/livewire#9185@realpokemade their first contribution in livewire/livewire#9213@marktinsleymade their first contribution in livewire/livewire#9243@dalbomade their first contribution in livewire/livewire#9268@abduselam1made their first contribution in livewire/livewire#9140@AJenbomade their first contribution in livewire/livewire#9219Full Changelog: https://github.com/livewire/livewire/compare/v3.6.2...v3.6.3
v3.6.2
What's Changed
- Replace deprecated
tweakApplication()and usebeforeServingApplication()instead by@crynobonein livewire/livewire#9234- [Chore] Sync next page classes with previous page class by
@danie-ramdhaniin livewire/livewire#9232- Add support for
wire:ignore.childrenby@joshhanleyin livewire/livewire#9229- Add validation support to synths by
@joshhanleyin livewire/livewire#9231Full Changelog: https://github.com/livewire/livewire/compare/v3.6.1...v3.6.2
v3.6.1
What's Changed
- Fix filter to exclude Volt component class methods and properties by
@joshhanleyin livewire/livewire#9216Full Changelog: https://github.com/livewire/livewire/compare/v3.6.0...v3.6.1
v3.6.0
... (truncated)
Commits
-
ef04be7Fix property update hydration -
56aa1bbBuild assets -
8a9a531Add PHPDoc types to Testable (#9219) -
241b5a4Update enum query parameter to setnullfor invalid values when nullable (#... -
15bd424FixresetExcept()to not reset all when all properties supplied (#9117) -
9bea207Fix query string history state error handling (#9278) -
76a1679Revert Breaking Change to Enum Validation in 3.6.2 (#9268) -
403eb7dUpdate forms.md (#9243) -
e50dfe3tweak wire:dirty and see if the tests break -
6f045daConverts@testtotest_for PHPUNIT 12 support (#9213) - Additional commits viewable in compare view