dophp/laravel-mail-builder
dophp/laravel-mail-builder provides a fluent, code-driven way to compose rich HTML emails in Laravel, helping you build and send templated messages without hand-writing markup. A lightweight helper for cleaner mailables.
MailBuilder::embedCidImages() or CidImageEmbedder::embed() is given a base path, a relative src such as ../secret could previously attach a file from outside that directory. This is a direct input for sequencing: if you pass a base path while embedding HTML you do not fully control (customer-supplied templates, imported HTML, multi-tenant content), treat this as a must-ship patch rather than a routine bump.groups, short_label, group, and description while keeping existing keys unchanged, so building custom palettes, admin surfaces, or downstream tooling on top of the schema does not require forking the editor.icons.js, which odden-mail-editor.js imports), and verify CID embedding behavior if you pass a base path. Note that v2.5.3 is a multi-minor jump from v2.4.0 — review the intermediate changelogs alongside this advisory so nothing else is missed.embedCidImages() or CidImageEmbedder::embed() with a base path and the HTML can come from users, tenants, imports, or any source you do not fully control. This is a file-disclosure fix, and the exposure predates this release.icons.js alongside the existing files.For executives: v2.5.3 is a security hardening patch for the email builder. It closes a case where a crafted relative image path could attach a file from outside the intended image directory when embedding images into emails. Only setups that supply a base path while embedding HTML they do not fully control are affected; everything else behaves as before. There are no changes to stored documents or compiled emails, so the data risk is low. Recommend shipping this promptly if any customer or tenant content flows through image embedding, and treating the small template audit as part of the release.
For engineering: Treat this as a required patch with one behavior change. Run composer update getodden/mail, republish assets with php artisan vendor:publish --tag=mail-builder-assets --force or php artisan filament:assets, and confirm self-hosted bundles include icons.js. Then audit every caller that passes a base path: embedding now requires the resolved path to stay inside the base path, be a regular readable file of at most 5 MB, and carry an image MIME type; URLs, stream wrappers (php://, file://) and protocol-relative addresses are never treated as local paths. Calls without a base path (data URIs only) are untouched. Expect previously working parent-directory references to stop embedding, verify fileinfo/MIME detection in your runtime, and check for images that silently drop out. Since this jumps from v2.4.0 to v2.5.3, review the intermediate changelogs for anything else landing in the same upgrade.
How can I help you explore Laravel packages today?