Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Livewire Markdown Editor Laravel Package

mckenziearts/livewire-markdown-editor

View on GitHub
Deep Wiki
Context7
v1.3

⚠️ Security

This release patches a critical arbitrary file upload vulnerability (CWE-434 + CWE-79) in the markdown editor's attachment handler. All users are encouraged to upgrade immediately.

Any authenticated user could upload HTML, SVG, JavaScript, PHP or other executable files to the configured disk. When the disk was a public cloud bucket (S3, Spaces, R2, Scaleway with FILESYSTEM_DISK=s3), uploaded files were served with a guessed Content-Type, enabling stored XSS, phishing page hosting, and malware distribution on the application's storage domain. A real-world exploit has been observed in production.

What's fixed

  • Strict validation (file, image, mimes:, extensions:, max:) is now enforced on every attachment before any store() call
  • Uploaded files are stored under a server-generated random filename with an extension derived from the actual file content (via finfo), never from the client-supplied name
  • The original filename is sanitized (control characters and markdown breakout characters stripped, truncated to 100 chars) before being inserted into the markdown output
  • The file input accept attribute is now derived from the config instead of a hard-coded allowlist that was never enforced server-side

Breaking behavioral change

Only image files are accepted by default. If your application relied on uploading PDF, DOC or other non-image types, publish the config and update the upload section:

php artisan vendor:publish --tag=livewire-markdown-editor-config
// config/livewire-markdown-editor.php
'upload' => [
'max_size' => 4096,
'allowed_extensions' => ['jpg', 'jpeg', 'png', 'gif', 'webp', 'avif', 'pdf', 'doc', 'docx'],
'images_only' => false,
],

If you do not use the attachment feature, disable it entirely via the show-upload prop:

<livewire:markdown-editor wire:model="content" :show-upload="false" />

What's Changed

Full Changelog: https://github.com/mckenziearts/livewire-markdown-editor/compare/v1.2...v1.3

v1.1

What's Changed

New Contributors

Full Changelog: https://github.com/mckenziearts/livewire-markdown-editor/compare/v1.0.1...v1.1

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor