getodden/mail
getodden/mail is a Laravel package that simplifies sending and managing email in PHP applications. It provides a clean, straightforward API for composing messages, configuring mail delivery, and integrating email workflows into your Laravel projects with less boilerplate.
MailBuilder::embedCidImages() and CidImageEmbedder::embed(). When a base path is supplied, a relative src such as ../secret could previously attach a file from outside the base directory. Embedded images must now resolve inside the base path, be a regular readable file of at most 5 MB, and have an image MIME type. URLs, stream wrappers (php://, file://) and protocol-relative addresses are never treated as local paths. This is a genuine security fix and should be tracked as such, not as a routine feature update.composer update getodden/mail and republishing editor assets.groups plus per-slot short_label, group, and description while keeping existing keys unchanged, supporting a future custom palette or editor integration without a schema migration. <odden-mail-editor> remains backward-compatible with schemas lacking the new keys.embedCidImages()/embed() with a base path against HTML the team does not fully control. Treat it as a scheduled upgrade if no base path is ever passed.icons.js; odden-mail-editor.js now imports it.Executive summary: v2.5.3 is a security hardening release for the email builder, not a feature release. It prevents a crafted relative image path in email HTML from attaching a file from outside the permitted asset directory when a base path is configured. The change is narrowly scoped: only deployments that pass a base path are affected, and the fix is a straight upgrade with no data migration. Recommended decision: approve the upgrade as a security patch, and confirm with engineering whether any content pipeline passes a base path with untrusted HTML — that determines whether this is this sprint or next.
Engineering summary: Upgrade with composer update getodden/mail, then republish editor assets using php artisan vendor:publish --tag=mail-builder-assets --force or php artisan filament:assets for the Filament field. Behaviour change: MailBuilder::embedCidImages() and CidImageEmbedder::embed(), when given a base path, now only embed a local image if it resolves inside that base path, is a regular readable file of at most 5 MB, and has 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 unchanged. Audit for: (a) any stored or seeded templates relying on ../ relative image paths that will now be rejected, and (b) any caller passing a base path alongside user-supplied HTML. Schema export v3 adds top-level groups and per-slot short_label, group, and description; existing keys are unchanged, and the editor still works with schemas missing the new keys. If serving editor files directly, include icons.js alongside the existing assets because odden-mail-editor.js imports it. No new dependency was added; Heroicons are inlined under MIT.
How can I help you explore Laravel packages today?