chore: Update mjml to 5.0.0 [SECURITY]#28570
Open
renovate[bot] wants to merge 1 commit intomasterfrom
Open
Conversation
Contributor
|
Contributor
Performance ComparisonComparing current → latest master → 14-day baseline Memory consumption baseline with starter plan resources
docker-stats
Idle baseline with Instance AI module loaded
How to read this table
|
Contributor
There was a problem hiding this comment.
No issues found across 2 files
Architecture diagram
sequenceDiagram
participant App as n8n CLI / Service
participant MJML as MJML v5 Engine
participant FS as File System
participant PostCSS as PostCSS Processor
participant Min as htmlnano / cssnano
Note over App,Min: Security Update: CVE-2025-67898 (Directory Traversal Fix)
App->>MJML: mjml2html(template, options)
MJML->>MJML: NEW: Validate allowIncludes (Default: false)
alt NEW: Includes allowed and path provided
MJML->>MJML: NEW: Check includePath boundaries
MJML->>FS: Read partial (mj-include)
FS-->>MJML: File content
else Includes ignored/restricted
Note over MJML: CHANGED: Includes skipped by default
end
MJML->>MJML: NEW: Sanitize template syntax (e.g. {{ handlebars }})
MJML->>PostCSS: Process styles
PostCSS-->>MJML: Processed CSS
MJML->>MJML: NEW: Restore template syntax
opt Minify enabled
MJML->>Min: CHANGED: Minify via htmlnano + cssnano
Min-->>MJML: Optimized Output
end
Note over MJML: CHANGED: Generate <body> via mj-body component
MJML-->>App: Rendered HTML string
8501443 to
975d49d
Compare
975d49d to
6fb7a9e
Compare
Bundle ReportBundle size has no change ✅ Affected Assets, Files, and Routes:view changes for bundle: editor-ui-esmAssets Changed:
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
8ae6d31 to
ad86158
Compare
ad86158 to
e625103
Compare
e625103 to
f773b6b
Compare
Contributor
Author
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^4.15.3→^5.0.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
MJML allows mj-include directory traversal due to an incomplete fix for CVE-2020-12827
CVE-2025-67898 / GHSA-45h5-66jx-r2wf
More information
Details
MJML through 4.18.0 allows mj-include directory traversal to test file existence and (in the type="css" case) read files. NOTE: this issue exists because of an incomplete fix for CVE-2020-12827.
Severity
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:LReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
mjmlio/mjml (mjml)
v5.0.0Compare Source
Upgrade Guide
These are the changes users need to actively consider when upgrading to MJML 5.x.x from MJML 4.x (and early MJML 5 alphas):
Highlights
html-minifierandjs-beautifywithhtmlnano+cssnano. [breaking change]mj-includeandignoreIncludes[breaking change]<body>tag is now driven bymj-body, not the global skeleton. [breaking change]mjml-browserbuild/minification pipeline updatedborder-radius). [breaking change]HTML/CSS minification & formatting
What changed
htmlnanoinstead ofhtml-minifier.cssnanopresets wired viamjml-core..mjmlconfig.jsImpact [potential breaking changes]
html-minifierspecific options used in custom tooling will no longer apply; options are now expressed ashtmlnano/cssnanoconfigs.What to do
minify/beautifyflags or custom minifier options, re‑map them to the newhtmlnano/cssnanoconfig.Notes
cssnanouseslitepreset by default. Due to this issue: #2919.defaultpreset can be used if your fonts don’t contain numeralsMore detail: (#2858 (comment))
Template syntax handling and sanitization (PostCSS)
What changed
{{ }}) is now sanitized before PostCSS and with syntax restored post-processing.Impact
CssSyntaxErrorerror will occur when applying CSS minification to files with some template syntaxWhat to do
More detail: (#2858 (comment))
Includes are more locked down
What changed
ignoreIncludes/allowIncludes(CLI) defaults and behavior have changed to be more secure. Includes are ignored by defaultincludePathoption is introduced to explicitly control where includes can be loaded from outside of a templates filePathImpact [potential breaking changes]
What to do
ignoreIncludes/allowIncludes.includePath(and related options) in your.mjmlconfigor CLI usage to match your desired include directories (see docs)More detail: (#2858 (comment))
mj-body and skeleton structure
What changed
<body>HTML tag is now generated under mj-body instead of a global skeleton file.idattribute tomj-bodymj-bodyattributes have been refactored:classattribute is applied to thebodytag rather than the childdivbackground-colorremoved frombody, applies to childdivonlyImpact [potential breaking changes]
<body>lived, what attributes were on it), this structure is now different.classmay no longer applyWhat to do
classorbackground-colorattributes that were applied tomj-bodyNotes
Browser bundle / build scripts
What changed
mjml-browserbuild/minification pipeline has been updated to use new minifiersWhy
Impact
mjml-browserdirectly or depended on its legacy build scripts, behavior and bundle size/shape might change.What to do
mjml-browserand verify they still load, minify, and run as expected.Attributes & layout consistency
What changed
border-radiusattributes now accept a string, previously this was inconsistent across components. Allows more flexible inputinner-paddingattributes ofmj-heroand fixed an Outlook issue withwidth/paddingImpact [potential breaking changes]
border-radiusvalues are less strictinner-paddingformj-herois now applied to all clients, not just OutlookWhat to do
border-radiusandmj-hero'sinner-paddingMigration helper removal
What changed
mjml-migratetool and associatednoMigrateWarnoption are removed.Impact [potential breaking changes]
What to do
Node.js version support
What changed
Impact [potential breaking changes]
What to do
Full Changelog: mjmlio/mjml@v4.18.0...v5.0.0
v4.18.0Compare Source
What's Changed
Documentation
Full Changelog: mjmlio/mjml@v4.17.2...v4.18.0
v4.17.2Compare Source
What's Changed
Fixes
Full Changelog: mjmlio/mjml@v4.17.1...v4.17.2
v4.17.1Compare Source
What's Changed
Fixes
Full Changelog: mjmlio/mjml@v4.17.0...v4.17.1
v4.17.0Compare Source
What's Changed
Features
Fixes
Documentation
Other
New Contributors
Full Changelog: mjmlio/mjml@v4.16.1...v4.17.0
v4.16.1Compare Source
Fixes
Full Changelog: mjmlio/mjml@v4.16.0...v4.16.1
v4.16.0Compare Source
What's Changed
Features
Fixes
Documentation
Dependencies
New Contributors
Full Changelog: mjmlio/mjml@v4.15.3...v4.16.0
Configuration
📅 Schedule: (in timezone UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.