Repository navigation
chore(deps): clear the two high happy-dom advisories with the 21.0.4 patch - #224
Open
sydevs-bot wants to merge 1 commit into
Open
sydevs-bot wants to merge 1 commit into
sydevs-bot wants to merge 1 commit into
Conversation
…patch happy-dom 20.14.6 -> 21.0.4, forced by a pnpm override because no direct dependency names happy-dom: it arrives via @payloadcms/richtext-lexical -> @lexical/headless (runtime tree) and via vitest (dev). Clears GHSA-834v-8h66-3h79 (CVE-2026-115895, 8.8, host code execution through an unvalidated ESM import alias; patched >=21.0.4) and GHSA-c8p4-j97h-3vg8 (CVE-2026-118660, 8.6, SSRF via iframe and link stylesheet; patched >=21.0.0). PR #196 proposed the same override on 2026-10-24 and was closed with "We'll wait for an official patch", when the advisory still read "No patched version is currently available". It now names 21.0.4, released 2026-10-20 and still npm latest. The SSRF advisory was published 2026-10-28, after that close. v21.0.0's one breaking change turns CSS file loading and iframe page loading off by default, deprecating disableCSSFileLoading for enableCSSFileLoading and enableIframePageLoading. Nothing here constructs a happy-dom Window or sets those settings, both vitest configs run environment 'node', and no file carries a @vitest-environment override. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mg9rjWnSTJ4GsZB9npQjpk
Contributor
Author
|
🤖 no session running Written by the sydevs dispatcher. Sessions never edit this comment. |
sydevs-bot
marked this pull request as ready for review
November 2, 2026 22:31
sydevs-bot
enabled auto-merge
November 2, 2026 22:31
Contributor
Author
|
Adversarial review skipped: 2 file(s), 20 changed line(s), under 🤖 sydevs dispatcher |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
wemeditate-web | 5eb032a | Commit Preview URL Branch Preview URL |
Nov 02 2026, 10:30 PM |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
wemeditate-design | 5eb032a | Commit Preview URL Branch Preview URL |
Nov 02 2026, 10:29 PM |
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.
Summary
Change outline
The override
package.jsongains onepnpm.overridesentry, beside the existingundicione. No direct dependency names happy-dom; it arrives twice:@payloadcms/richtext-lexical→@lexical/headless→happy-dom— the runtime tree, which is why Dependabot scopes both alertsruntimevitest→happy-dom— devpnpm-lock.yamlfollows: one resolved version, 20.14.6 → 21.0.4, on both paths.Preview
No route, component or style changed, so no preview page shows this. The Cloudflare previews build from the branch as usual.
Test results
tsc --noEmit,vitest run— 921 tests in 91 filespnpm build, which mirrors the Cloudflare preview deploypnpm audit --audit-level=high: 2 high → 0. Moderate (9) and low (3) counts unchanged, so nothing new came in with 21.0.4.Manual verification
Notes for reviewer
patched_versions: >=21.0.4andrecommendation: Upgrade to version 21.0.4 or later. And a second high advisory, GHSA-c8p4-j97h-3vg8 (SSRF, 8.6), was published 2026-10-28, after that close. happy-dom 21.0.4 shipped 2026-10-20 and is still npmlatest, 13 days on.v21.0.4reference link supersede it.@lexical/headless@0.50.0's declaredhappy-dom: ^20.9.0. Nothing we ship loads that package — evidence in Detail.Detail
v21.0.0's one breaking change turns CSS file loading and iframe page loading off by default — that is the SSRF fix.
disableCSSFileLoadingis deprecated in favour ofenableCSSFileLoadingandenableIframePageLoading. Call sites checked: no file in the repo mentions happy-dom or any of those settings, bothvitest.config.tsandvitest.smoke.config.tssetenvironment: 'node', and no file carries a@vitest-environmentdocblock. 21.0.1 through 21.0.4 are patches.Reachability. Exposure is lower than the CVSS scores suggest. The override is one line, so this ships rather than being argued down:
@payloadcms/richtext-lexical/react. Walking that subpath's import graph reachesreactanduuid, and nothing else — not@lexical/headless.grepoverdist/afterpnpm build: 0 files matchhappy-dom,HappyDOMorlexical/headless. Neither the Worker nor the client bundle ships it.Window. Nothing here constructs one.Why an override and not a bump. happy-dom is not a direct dependency, so there is nothing to bump. The alternative is waiting for
@lexical/headlessto widen its range, which leaves both alerts open for as long as that takes.CI's dependency gate fails only on a newly added vulnerable dependency, so it has nothing to say about a PR that removes two.
Pipeline steps recorded rather than run.
/simplifyand/code-reviewread source; this branch changes onepackage.jsonline and a generated lockfile, so neither lens had anything to read.comment-lint.mjs --base origin/mainran and reported 0 changed files. The security review did not trigger: neither changed path matchessecurityReview.triggerPattern. Docs checked — nothing indocs/, theAGENTS.mdguides or.env.exampledescribes the overrides block.Generated by Claude Code