chore(deps): update dependency happy-dom to v20 [security]#682
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
chore(deps): update dependency happy-dom to v20 [security]#682renovate[bot] wants to merge 1 commit intomainfrom
renovate[bot] wants to merge 1 commit intomainfrom
Conversation
canonical-iam
approved these changes
Oct 11, 2025
Contributor
Coverage Report for UI Test Coverage (./ui)
File CoverageNo changed files found. |
24830c4 to
2856936
Compare
canonical-iam
approved these changes
Oct 11, 2025
2856936 to
5c3742a
Compare
canonical-iam
approved these changes
Oct 11, 2025
5c3742a to
48f4b73
Compare
canonical-iam
approved these changes
Oct 11, 2025
48f4b73 to
f92d692
Compare
canonical-iam
previously approved these changes
Oct 15, 2025
f92d692 to
abc328d
Compare
canonical-iam
approved these changes
Oct 15, 2025
abc328d to
3efe7af
Compare
canonical-iam
approved these changes
Oct 18, 2025
3efe7af to
0d6faf1
Compare
canonical-iam
approved these changes
Oct 18, 2025
0d6faf1 to
f19b384
Compare
canonical-iam
approved these changes
Oct 20, 2025
f19b384 to
e0a3f97
Compare
canonical-iam
approved these changes
Oct 25, 2025
e0a3f97 to
db385ea
Compare
canonical-iam
approved these changes
Oct 25, 2025
db385ea to
c0a3602
Compare
canonical-iam
approved these changes
Oct 29, 2025
c0a3602 to
aa3eab7
Compare
canonical-iam
approved these changes
Oct 29, 2025
aa3eab7 to
375991e
Compare
canonical-iam
approved these changes
Jan 7, 2026
8d43fff to
bc72397
Compare
canonical-iam
approved these changes
Jan 12, 2026
bc72397 to
72f85e3
Compare
canonical-iam
approved these changes
Jan 12, 2026
72f85e3 to
a16d9a4
Compare
canonical-iam
approved these changes
Jan 14, 2026
a16d9a4 to
6af28c0
Compare
canonical-iam
approved these changes
Jan 14, 2026
6af28c0 to
3ac25a3
Compare
canonical-iam
approved these changes
Jan 15, 2026
3ac25a3 to
7a53389
Compare
canonical-iam
approved these changes
Jan 17, 2026
7a53389 to
f09498d
Compare
canonical-iam
approved these changes
Feb 2, 2026
f09498d to
ca501c1
Compare
canonical-iam
approved these changes
Feb 2, 2026
ca501c1 to
fc3cb4c
Compare
canonical-iam
approved these changes
Feb 2, 2026
fc3cb4c to
47e6f3b
Compare
canonical-iam
approved these changes
Feb 4, 2026
47e6f3b to
52981a4
Compare
canonical-iam
approved these changes
Feb 7, 2026
52981a4 to
0edd610
Compare
canonical-iam
approved these changes
Feb 7, 2026
0edd610 to
cd94ee4
Compare
canonical-iam
approved these changes
Feb 7, 2026
cd94ee4 to
2ba3802
Compare
canonical-iam
approved these changes
Feb 11, 2026
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:
18.0.1→20.0.0Warning
Some dependencies could not be looked up. Check the warning logs for more information.
GitHub Vulnerability Alerts
CVE-2025-61927
Escape of VM Context gives access to process level functionality
Summary
Happy DOM v19 and lower contains a security vulnerability that puts the owner system at the risk of RCE (Remote Code Execution) attacks.
A Node.js VM Context is not an isolated environment, and if the user runs untrusted JavaScript code within the Happy DOM VM Context, it may escape the VM and get access to process level functionality.
It seems like what the attacker can get control over depends on if the process is using ESM or CommonJS. With CommonJS the attacker can get hold of the
require()function to import modules.Happy DOM has JavaScript evaluation enabled by default. This may not be obvious to the consumer of Happy DOM and can potentially put the user at risk if untrusted code is executed within the environment.
Reproduce
CommonJS (Possible to get hold of require)
ESM (Not possible to get hold of import or require)
Potential Impact
Server-Side Rendering (SSR)
Testing Frameworks
Any test suite using Happy-DOM with untrusted content may be at risk
Attack Scenarios
Recommended Immediate Actions
eval()andFunction()can still be used within the Happy DOM VM without any known security riskTechnical Root Cause
All classes and functions inherit from Function. By walking the constructor chain it's possible to get hold of Function at process level. As Function can evaluate code from strings, it's possible to execute code at process level.
Running Node with the "--disallow-code-generation-from-strings" flag protects against this.
Release Notes
capricorn86/happy-dom (happy-dom)
v20.0.0Compare Source
I avoid making breaking changes as much as possible in Happy DOM. When I have to make a breaking change, I try to keep it as minimal as possible. This could be a breaking change that impacts many projects, and I am truly sorry if you are negatively affected by this.
💣 Breaking Changes
v19.0.2Compare Source
👷♂️ Patch fixes
:scopethat didn't work correctly for direct descendants to root - By @capricorn86 in task #1620v19.0.1Compare Source
👷♂️ Patch fixes
@happy-dom/server-rendererconfig using CLI - By @capricorn86 in task #1908v19.0.0Compare Source
💣 Breaking Changes
require()@happy-dom/jest-environmentpackage - By @capricorn86 in task #1730@happy-dom/jest-environment- By @capricorn86 in task #1730🎨 Features
@happy-dom/server-renderer- By @capricorn86 in task #1730import.metato the ESM compiler - By @capricorn86 in task #1730:scope- By @capricorn86 in task #1620MediaList- By @capricorn86 in task #1730CSSKeywordValue,CSSStyleValue,StylePropertyMap,StylePropertyMap,StylePropertyMapReadOnly- By @capricorn86 in task #1730Browserinstance - By @capricorn86 in task #1730setTimeout()andrequestAnimationFrame()- By @capricorn86 in task #1730beforeContentCallbackandheaderstoBrowserFrame.goto(),BrowserFrame.goBack(),BrowserFrame.goForward(),BrowserFrame.goSteps()andBrowserFrame.reload()- By @capricorn86 in task #1730PopStateEventand trigger the event when navigating the page history usingHistory.pushState()- By @capricorn86 in task #1730ResponseCache.fileSystem.load()andResponseCache.fileSystem.save()for storing and loading cache from the file system - By @capricorn86 in task #1730👷♂️ Patch fixes
BrowserFrame.goto()- By @capricorn86 in task #1730XMLHttpRequestto prevent it from being set to an invalid state if a listener throws an Error - By @capricorn86 in task #1730Configuration
📅 Schedule: Branch creation - "" in timezone Europe/London, Automerge - At any time (no schedule defined).
🚦 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.