chore(deps): update dependency handlebars to v4.7.9 [security]#306
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update dependency handlebars to v4.7.9 [security]#306renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
4c6c446 to
255df82
Compare
255df82 to
dabea8c
Compare
dabea8c to
fcbcb22
Compare
fcbcb22 to
16a793e
Compare
16a793e to
5c56758
Compare
5c56758 to
f05ad13
Compare
f05ad13 to
04ae96d
Compare
04ae96d to
07f9000
Compare
07f9000 to
1e7486e
Compare
1e7486e to
6116100
Compare
6116100 to
979a444
Compare
979a444 to
f1807a9
Compare
f1807a9 to
26134c1
Compare
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.6.0→4.7.9Remote code execution in handlebars when compiling templates
CVE-2021-23369 / GHSA-f2jv-r9rf-7988
More information
Details
The package handlebars before 4.7.7 are vulnerable to Remote Code Execution (RCE) when selecting certain compiling options to compile templates coming from an untrusted source.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Arbitrary Code Execution in Handlebars
CVE-2019-20920 / GHSA-3cqr-58rm-57f8
More information
Details
Handlebars before 3.0.8 and 4.x before 4.5.3 is vulnerable to Arbitrary Code Execution. The lookup helper fails to properly validate templates, allowing attackers to submit templates that execute arbitrary JavaScript. This can be used to run arbitrary code on a server processing Handlebars templates or in a victim's browser (effectively serving as XSS).
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:L/A:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Prototype Pollution in handlebars
CVE-2021-23383 / GHSA-765h-qjxv-5f44
More information
Details
The package handlebars before 4.7.7 are vulnerable to Prototype Pollution when selecting certain compiling options to compile templates coming from an untrusted source.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Prototype Pollution in handlebars
GHSA-q42p-pg8m-cqh6
More information
Details
Versions of
handlebarsprior to 4.0.14 are vulnerable to Prototype Pollution. Templates may alter an Objects' prototype, thus allowing an attacker to execute arbitrary code on the server.Recommendation
For handlebars 4.1.x upgrade to 4.1.2 or later.
For handlebars 4.0.x upgrade to 4.0.14 or later.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Arbitrary Code Execution in handlebars
GHSA-2cf5-4w76-r9qv
More information
Details
Versions of
handlebarsprior to 3.0.8 or 4.5.2 are vulnerable to Arbitrary Code Execution. The package's lookup helper fails to properly validate templates, allowing attackers to submit templates that execute arbitrary JavaScript in the system. It can be used to run arbitrary code in a server processing Handlebars templates or on a victim's browser (effectively serving as Cross-Site Scripting).The following template can be used to demonstrate the vulnerability:
Recommendation
Upgrade to version 3.0.8, 4.5.2 or later.
Severity
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:L/I:H/A:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Prototype Pollution in handlebars
GHSA-g9r4-xpmj-mj65
More information
Details
Versions of
handlebarsprior to 3.0.8 or 4.5.3 are vulnerable to prototype pollution. It is possible to add or modify properties to the Object prototype through a malicious template. This may allow attackers to crash the application or execute Arbitrary Code in specific conditions.Recommendation
Upgrade to version 3.0.8, 4.5.3 or later.
Severity
High
References
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Arbitrary Code Execution in handlebars
GHSA-q2c6-c6pm-g3gh
More information
Details
Versions of
handlebarsprior to 3.0.8 or 4.5.3 are vulnerable to Arbitrary Code Execution. The package's lookup helper fails to properly validate templates, allowing attackers to submit templates that execute arbitrary JavaScript in the system. It is due to an incomplete fix for a previous issue. This vulnerability can be used to run arbitrary code in a server processing Handlebars templates or on a victim's browser (effectively serving as Cross-Site Scripting).Recommendation
Upgrade to version 3.0.8, 4.5.3 or later.
Severity
High
References
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Handlebars.js has Prototype Pollution Leading to XSS through Partial Template Injection
CVE-2026-33916 / GHSA-2qvq-rjwj-gvw9
More information
Details
Summary
resolvePartial()in the Handlebars runtime resolves partial names via a plain property lookup onoptions.partialswithout guarding against prototype-chain traversal. WhenObject.prototypehas been polluted with a string value whose key matches a partial reference in a template, the polluted string is used as the partial body and rendered without HTML escaping, resulting in reflected or stored XSS.Description
The root cause is in
lib/handlebars/runtime.jsinsideresolvePartial()andinvokePartial():hasOwnPropertyis never checked, so ifObject.prototypehas been seeded with a key whose name matches a partial reference in the template (e.g.widget), the lookup succeeds and the polluted string is returned. The runtime emits a prototype-access warning, but the partial is still resolved and its content is inserted into the rendered output unescaped. This contradicts the documented security model and is distinct from CVE-2021-23369 and CVE-2021-23383, which addressed data property access rather than partial template resolution.Prerequisites for exploitation:
qs,minimist, orany querystring/JSON merge sink).
Proof of Concept
Workarounds
Object.freeze(Object.prototype)early in application startup to prevent prototype pollution. Note: this may break other libraries.handlebars/runtime), which does not compile templates and reduces the attack surface.Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
handlebars-lang/handlebars.js (handlebars)
v4.7.9Compare Source
e0137c2eab1d14hashto be aRecord<string, any>-de4414d4512766e497a3568d8df5Commits
v4.7.8Compare Source
3d3796c2954e7e30dbf0403d387bc6c6bbb88ac068Commits
v4.7.7Compare Source
eb860c0b6d3de7f05897077825f83789a30(POSSIBLY) BREAKING CHANGES:
in when using the compile-option "strict: true". Access to prototype properties is forbidden completely by default, specific properties or methods
can be allowed via runtime-options. See #1633 for details. If you are using Handlebars as documented, you should not be accessing prototype properties
from your template anyway, so the changes should not be a problem for you. Only the use of undocumented features can break your build.
That is why we only bump the patch version despite mentioning breaking changes.
Commits
v4.7.6Compare Source
Chore/Housekeeping:
Compatibility notes:
Commits
v4.7.5Compare Source
Chore/Housekeeping:
Node.js version support has been changed to v6+Reverted in 4.7.6Compatibility notes:
Node.js < v6 is no longer supportedReverted in 4.7.6Commits
v4.7.4Compare Source
Chore/Housekeeping:
Compatibility notes:
Commits
v4.7.3Compare Source
Chore/Housekeeping:
d78cc73Bugfixes:
4de51fea32d05fCompatibility notes:
Commits
v4.7.2Compare Source
Bugfixes:
9d5aa36, #1639Chore/Build:
a4fd391Compatibility notes:
Commits
v4.7.1Compare Source
Bugfixes:
f152dfc3c1e252Compatibility notes:
Commits
v4.7.0Compare Source
Features:
7af1c12, #1635and no explicit configuration has taken place.
Compatibility notes:
Commits
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, 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.