Skip to content

Fix Dependabot security alerts for trix, playwright, and brace-expansion#2142

Open
phinze wants to merge 3 commits intomainfrom
fix-dependabot-security-alerts
Open

Fix Dependabot security alerts for trix, playwright, and brace-expansion#2142
phinze wants to merge 3 commits intomainfrom
fix-dependabot-security-alerts

Conversation

@phinze
Copy link
Copy Markdown
Contributor

@phinze phinze commented Apr 1, 2026

What it does

Sweeps through the open Dependabot security alerts and closes out the ones we can fix right now. Three packages get version bumps: trix (XSS fix), playwright (SSL certificate verification), and brace-expansion (ReDoS hang). The fourth alert — an mjml directory traversal — has been dismissed as tolerable risk since there's no patch available and we don't use the affected mj-include feature.

Why it is important

These are security advisories flagged by Dependabot. The trix and playwright fixes address a low-severity XSS and a high-severity SSL verification bypass respectively. The brace-expansion fix prevents a moderate-severity denial of service via crafted input. Getting these merged clears the security dashboard down to zero actionable alerts.

UI Change Screenshot

No UI changes.

Implementation notes

The brace-expansion vulnerability lives deep in the transitive dependency chain (mjml → mjml-cli → minimatch → brace-expansion), so we used a yarn resolutions entry to force it to ^2.0.3 rather than waiting on upstream to update. The playwright bump is a bigger jump (1.45.0 → 1.55.1) since it's a pinned dev dependency — system tests use it via capybara-playwright-driver which should be compatible with the newer version. The mjml alert (CVE-2025-67898) was dismissed on GitHub with a note explaining the rationale — no fix exists in the 4.x line, and 5.x is still in beta.

- Upgrade trix 2.1.17 → 2.1.18 (XSS via drag-and-drop deserialization)
- Upgrade playwright 1.45.0 → 1.55.1 (SSL certificate verification)
- Add resolution for brace-expansion ^2.0.3 (ReDoS process hang)
- Dismiss mjml directory traversal alert as tolerable risk (no patch
  available, mj-include not used in this project)
@jim
Copy link
Copy Markdown
Member

jim commented Apr 1, 2026

In the past when bumping playwright we also needed to update capybara-playwright-driver to mitigate system test failures.

The playwright npm package bump to 1.55.1 broke system tests with
"timeout: expected float, got undefined" errors. Updating the
capybara-playwright-driver gem (0.5.6 → 0.5.9) and its dependency
playwright-ruby-client (1.51.0 → 1.58.1) fixes the compatibility.

Hat tip to Jim for flagging this.
@phinze
Copy link
Copy Markdown
Contributor Author

phinze commented Apr 1, 2026

Good call! Bumped capybara-playwright-driver (0.5.6 → 0.5.9) and playwright-ruby-client (1.51.0 → 1.58.1) in 647c549. The system tests were hitting Playwright::Error: timeout: expected float, got undefined — exactly what you'd expect from that version mismatch.

The minimum_start_distance test used bare 4.days.from_now which
includes the current time-of-day, causing the day count to wobble
across the policy boundary depending on when CI runs. Pinning to
beginning_of_day makes the comparison deterministic, matching the
pattern already used in the maximum_duration test above.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants