Skip to content

fix(security): update DOMPurify and ip-address - #1145

Open
qnbs wants to merge 6 commits into
mainfrom
fix/security-dompurify-3417
Open

qnbs wants to merge 6 commits into
mainfrom
fix/security-dompurify-3417

Conversation

@qnbs

@qnbs qnbs commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

User description

PR #1145 combines two narrowly scoped dependency security corrections discovered while clearing its all-lockfile OSV admission.

Changes

  • Update the shipped DOMPurify dependency and workspace override to 3.4.17 / >=3.4.17 <4, including jsPDF's optional copy. Four focused sanitizer regressions cover the upstream XHTML/SVG, shadow-root template, and hook-detachment cases.
  • Raise the ip-address workspace floor to >=10.7.4 <11 for GHSA-rxp7-6hxx-x8q5. On this branch, pnpm why traces it only through @lhci/cli developer tooling to socks; no first-party source reference was found. This is dependency-presence evidence, not a reproduced shipped-app exploit.

Local validation on d1db37b37ac3fc0a94983fd33c450781302afbda

  • Pinned pnpm 12.13.0 frozen reconciliation and dependency-state verification passed.
  • Focused DOMPurify and ip-address tests passed 6/6 on the preceding implementation commit; after the CodeScene refactor, the focused ip-address suite passed 2/2.
  • docs:check, the complete local ci:prepush admission, and SSH signature verification passed.
  • Current PR budget: 8 files / 176 meaningful lines / 6 commits.

Current exact-head evidence

  • CI run 41027370593: enforced Security Audit / OSV failed at job 123968778411. It reports the same 29 records across 12 package versions and all three lockfiles (12 High, 14 Medium, 3 Low; 26 marked fixable). The patched ip-address advisory is absent; the stale GHSA-hp3w-g68c-fv3c ignore is still reported. The current package/advisory matrix and reachability evidence are tracked in #1146.
  • The required CI Success job failed because Security Audit failed; downstream quality, Rust, build, and E2E jobs were skipped.
  • CodeQL run 41027370559, text-attribution and changelog guards, CodeAnt quality checks, and all three CodeScene gates passed. The CodeScene complexity finding was refactored without suppression and its thread was resolved. No actionable inline thread is unresolved. CodeAnt reports its d1db review completed at 08:41; its quality checks passed and it left no new actionable inline finding. Codex review completed on d1db with no findings; the separate Codex security-review channel did not run. The earlier Sourcery override-bound and test-metric findings were addressed in b954 with reply receipts.
  • The Vercel status says “Canceled by Ignored Build Step”; it does not establish a preview deployment.
  • Do not merge while required security or CI checks are red or skipped. Exact-head run logs and the finding matrix are linked above. Generated summaries below may lag the latest gate evidence. Refs ops(sprint): post-v1.29.2 corrective-hardening window before resuming v1.30 R-15 #1132 and security(osv): triage eight failing daily scans and unblock all-lockfile security admission #1146; the hardening window remains open.

Summary by Sourcery

Apply patched DOMPurify and ip-address dependency versions to address known security advisories while preserving compatibility and verifying the resulting dependency paths.

Bug Fixes:

  • Update DOMPurify to 3.4.17 to address XHTML/SVG, shadow-root template, and detached-subtree sanitization vulnerabilities.
  • Raise the ip-address dependency floor to 10.7.4 for the Lighthouse CI tooling vulnerability.

Documentation:

  • Document the dependency security updates and refresh the README test-count metrics.

Tests:

  • Add regression coverage for the DOMPurify fixes and assertions that the patched ip-address version remains confined to Lighthouse CI developer tooling.

Summary by cubic

Updates DOMPurify to 3.4.17 and raises the dev-only ip-address floor to 10.7.4, closing three DOM XSS advisories (GHSA-c6gr-qvv4-5v3f, GHSA-cg2g-xh64-v4q7, GHSA-mrv2-3pqr-j5jr) and GHSA-rxp7-6hxx-x8q5.

  • The dompurify override is capped <4 to keep the jsPDF 3.x contract; ip-address is bound >=10.7.4 <11 and reachable only via @lhci/cli → socks. The lockfile touches only the sanitizer, ip-address, and jsPDF's optional dompurify copy.
  • Four DOMPurify regressions cover XHTML SVG href animation targets, shadow-root template scrubbing, and both hook-detached subtree paths; a simplified lockfile assertion pins the ip-address resolution.
  • App call sites use string sanitization without these modes, so the DOMPurify tests qualify the dependency boundary rather than reproduce a production exploit.

Merge blocker: the OSV scan and full CI have not run on the updated head; do not merge while the security gate is unconfirmed.

Written for commit d1db37b. Summary will update on new commits.

View guided diff Turn on auto-fix

Summary by CodeRabbit

  • Security
    • Updated the HTML sanitization library to version 3.4.17, including the copy used by jsPDF.
    • Raised the Lighthouse CI tooling dependency to version 10.7.4 or later within the 10.x line.
  • Tests
    • Added regression coverage for SVG links, templates in shadow roots, and event handlers on detached content.
    • Added checks to verify the updated tooling dependency is used in the lockfile.
  • Documentation
    • Updated security notes, changelog details, and reported test totals.

CodeAnt-AI Description

Patch HTML sanitizer security issues and update Lighthouse CI networking dependency

What Changed

  • Update the app and jsPDF’s HTML sanitizer to address unsafe SVG links, template expressions in shadow roots, and unsanitized content detached by hooks.
  • Update Lighthouse CI’s networking dependency to a patched release.

Impact

✅ Unsafe SVG links removed during XHTML sanitization
✅ Malicious content neutralized when sanitizer hooks detach nodes
✅ Patched IP parsing in Lighthouse CI tooling

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

@vercel

vercel Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
worldscript-studio Ignored Ignored Preview Oct 30, 2026 8:34am UTC

@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between c406eb4 and d1db37b.

Files selected for processing: 1
  • tests/unit/security/ipAddressDependency.test.ts

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour.

Walkthrough

The DOMPurify dependency floor and workspace override increase to 3.4.17. The Lighthouse CI ip-address override floor increases to 10.7.4 within major version 10. New tests cover sanitizer behavior and dependency resolution. The audit, changelog, and README are updated.

Changes: Security dependency updates

Layer / File(s) Summary
DOMPurify update and regression coverage
package.json, pnpm-workspace.yaml, tests/unit/security/dompurifySecurity.test.ts, AUDIT.md
The DOMPurify dependency range and workspace override floor increase to 3.4.17. Four regression cases cover XHTML SVG animation targets, shadow-root sanitization, and detached subtrees. The audit records the update and test results.
Lighthouse CI ip-address floor
pnpm-workspace.yaml, tests/unit/security/ipAddressDependency.test.ts
The override changes to >=10.7.4 <11. Tests check the locked version, the socks@2.8.7 resolution, and that @lhci/cli is a development dependency.
Release notes and test totals
CHANGELOG.md, README.md
The changelog records both dependency updates and related checks. The README test totals change to 8,659+ across 653 files.

Priority: Normal

Merge Risk: Minimal · up to d1db3

The dependency updates remediate the targeted findings without introducing a new security risk; independent CI status should still be confirmed before merging.

Comment @coderabbitai help to get the list of available commands.

@sourcery-ai

sourcery-ai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

This PR upgrades DOMPurify from 3.4.16 to 3.4.17 across direct, overridden, and jsPDF lockfile references, adds four regression cases for the fixed sanitizer boundaries, and documents the validation evidence. Reviewers should note that the overall OSV gate remains intentionally red because of the unrelated ip-address advisory; no merge should occur while that required gate fails.

Sequence diagram for DOMPurify security regression validation

sequenceDiagram
    participant Tests as Regression tests
    participant Sanitizer as DOMPurify 3.4.17
    participant Gate as Security validation
    Tests->>Sanitizer: sanitize special XHTML/SVG and shadow-root inputs
    Sanitizer-->>Tests: sanitized output
    Tests->>Sanitizer: validate hook-detached parent/sibling subtrees
    Sanitizer-->>Tests: safe output
    Tests->>Gate: report 4 regression cases passing
    Gate-->>Tests: DOMPurify advisories cleared
Loading

Flow diagram for the remaining security gate blocker

flowchart TD
    Scan[OSV scan of all lockfiles] --> DOM[DOMPurify findings]
    DOM -->|none after 3.4.17| Pass[DOMPurify advisory check passes]
    Scan --> IP[ip-address 10.7.2]
    IP -->|GHSA-rxp7-6hxx-x8q5| Blocked[Required security gate remains red]
    Blocked --> NoMerge[Do not merge]
Loading

File-Level Changes

Change Details Files
Raise DOMPurify’s enforced runtime version to the patched 3.4.17 release and synchronize the dependency metadata.
  • Update the direct dependency and workspace override floor.
  • Update the lockfile’s DOMPurify entries, including jsPDF’s optional copy, without unrelated package upgrades.
  • Replace the prior DOMPurify advisory note with the three newly addressed advisories.
package.json
pnpm-lock.yaml
pnpm-workspace.yaml
Add dependency-level regression coverage for the upstream sanitizer security fixes.
  • Verify XHTML SVG animation href targets are removed.
  • Verify split template expressions and unsafe nodes are scrubbed in attached shadow roots.
  • Verify hook-detached parent and sibling subtrees still have event handlers neutralized.
tests/unit/security/dompurifySecurity.test.ts
Document the security follow-up, validation results, and updated test inventory.
  • Record the addressed advisories, integrity and supply-chain validation, and the remaining out-of-scope OSV failure.
  • Add the DOMPurify update to the unreleased changelog.
  • Update README test counts and file counts.
AUDIT.md
CHANGELOG.md
README.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@socket-security

socket-security Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednpm/​dompurify@​3.4.16 ⏵ 3.4.17100100 +751009270

View full report

@codeant-ai

codeant-ai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

View results CodeAnt  CodeAnt Quality Gate Results

Commit d1db37b3 · Scanned Oct 30, 2026 at 08:35 UTC

✅  Overall Status: PASSED

Quality Gate Status Details
Secrets ✅  Passed 0 secrets found
Duplicate code ✅  Passed 0.0% duplicated
SAST ✅  Passed No security issues
Bugs ✅  Passed Rating S · No bugs
IaC ✅  Passed Rating S · No issues

codescene-access[bot]

This comment was marked as outdated.

@qnbs
qnbs marked this pull request as ready for review October 22, 2026 22:07
@codeant-ai

codeant-ai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

CodeAnt  CodeAnt Review Status

✅  Review completed

Status Commit Started (UTC) Finished (UTC)
✅  Reviewed your PR d1db37b Oct 30, 2026 · 08:35 08:41
✅  Incremental review completed c406eb4 Oct 30, 2026 · 08:23 08:23
✅  Reviewed your PR b954da0 Oct 22, 2026 · 22:27 22:29
✅  Reviewed your PR a882a03 Oct 22, 2026 · 22:12 22:12
✅  Reviewed your PR a882a03 Oct 22, 2026 · 22:08 22:12

@codeant-ai

codeant-ai Bot commented Oct 22, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-30T08:35:38.311849Z d1db37b New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@codeant-ai codeant-ai Bot added the size:M This PR changes 30-99 lines, ignoring generated files label Oct 22, 2026
@qnbs

qnbs commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

@CodeAnt-AI review

@qnbs

qnbs commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

@codex review

codescene-access[bot]

This comment was marked as outdated.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 2 issues

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="pnpm-workspace.yaml" line_range="92" />
<code_context>
   qs: ">=6.16.0"
   fflate: ">=0.8.3"
-  dompurify: ">=3.4.16" # GHSA-p98j-92pf-mc4p (fixed 3.4.16); shipped runtime dependency
+  dompurify: ">=3.4.17" # GHSA-c6gr-qvv4-5v3f / GHSA-cg2g-xh64-v4q7 / GHSA-mrv2-3pqr-j5jr; shipped runtime dependency
   "@babel/core": ">=7.29.6 <8"
   undici: ">=7.29.1 <8" # floor raised for GHSA-3wwx-pv8p-q78v (fixed 7.29.1); stays within 7.x (see header)
</code_context>
<issue_to_address>
**Override permits future major upgrades**

When a future DOMPurify major release is available and the lockfile is refreshed, a lockfile refresh can resolve DOMPurify 4.x because the override replaces the root dependency range with `>=3.4.17`; the lockfile importer already records that unbounded specifier despite `package.json` declaring `^3.4.17`. An incompatible major can therefore be installed outside the declared compatibility range.

Bound the override to the supported major, for example `>=3.4.17 <4`.
</issue_to_address>

### Comment 2
<location path="README.md" line_range="23" />
<code_context>
   <img src="https://img.shields.io/badge/Desktop-Tauri_2-FFC131?logo=tauri&logoColor=black" alt="Tauri 2">
   <img src="https://img.shields.io/badge/i18n-19_locales_%2F_2963_keys-0EA5E9" alt="19 locales — 2963 keys">
-  <img src="https://img.shields.io/badge/Tests-8653%2B_%2F_651_files-22C55E" alt="8653+ tests / 651 files">
+  <img src="https://img.shields.io/badge/Tests-8655%2B_%2F_652_files-22C55E" alt="8655+ tests / 652 files">
   <img src="https://img.shields.io/codecov/c/github/qnbs/WorldScript-Studio?logo=codecov&label=Coverage" alt="Codecov Coverage">
   <img src="https://img.shields.io/github/actions/workflow/status/qnbs/WorldScript-Studio/.github/workflows/ci.yml?branch=main&logo=github&label=CI" alt="CI status">
</code_context>
<issue_to_address>
**Documented test total is too low**

When the README total is intended to represent Vitest's runnable test cases, `scripts/test-metrics.mjs` counts `it(` calls but misses `it.each`, so the README understates the runnable test count by two.

Update the test-metrics script to count `it.each` cases and correct the README total.

Also at `README.md:812`, `README.md:889`, `README.md:1034`, `tests/unit/security/dompurifySecurity.test.ts:42`.
</issue_to_address>

Sourcery assessment

Needs a human reviewer. 1 finding to address first, and if the updated sanitizer has a regression that lets hostile markup through, it could execute when sanitized content is rendered and expose data before the issue is reverted. Reverting restores the prior version, but it cannot undo any exposure that already occurred.

Blocking findings: pnpm-workspace.yaml:92


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

Comment thread pnpm-workspace.yaml Resolved
Comment thread README.md Resolved
@codeant-ai

codeant-ai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

CodeAnt  CodeAnt Nitpicks

No threshold-suppressed suggestions found in the latest review.

@codeant-ai

codeant-ai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

CodeAnt  CodeAnt PR Risk

🟢  Low Risk

  • The PR appears safe to merge; no actionable issues were identified in the review.

Assessed commit: d1db37b37ac3

@qnbs

qnbs commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

Review correction at b954da0: both CodeAnt nitpicks and the matching Sourcery findings are addressed. The override is bounded to >=3.4.17 <4; explicit detachment cases preserve all four regression oracles and the canonical test count. Frozen reconciliation, focused tests, docs:check and ci:prepush passed. The separate ip-address advisory remains outside this DOMPurify-only admission and blocks merge.

@qnbs

qnbs commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

@CodeAnt-AI review

@qnbs

qnbs commented Oct 22, 2026

Copy link
Copy Markdown
Owner Author

@codex review

codescene-access[bot]

This comment was marked as outdated.

@codeant-ai codeant-ai Bot added size:L This PR changes 100-499 lines, ignoring generated files and removed size:M This PR changes 30-99 lines, ignoring generated files labels Oct 22, 2026
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

Reviewed commit: b954da0485

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

qnbs commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

2026-10-30 — current security admission / coordinated incident #1146

Latest connected GitHub checks for current head b954da0485e5ebd78c998971798bc4db74cc0767 report Security Audit=FAILURE and CI Success=FAILURE; heavy downstream quality/build/E2E is skipped. CodeQL/CodeScene/CodeAnt success does not certify merge. Vercel Preview READY also cannot certify security.

The 30 October scheduled-main OSV run https://github.com/qnbs/WorldScript-Studio/actions/runs/40997125202 scans all 3 lockfiles, exits 1, reports a now unused GHSA-hp3w-g68c-fv3c ignore; its console log does not expose the full unfiltered finding set. Separately your PR's recorded OSV failure calls out ip-address@10.7.2, GHSA-rxp7-6hxx-x8q5, with patched 10.7.4.

Next: coordinate with newly opened incident #1146. Obtain source JSON for main and PR to distinguish stale-ignore failure from remaining advisories, inspect dependency paths/compatibility, produce the smallest all-lockfile green remediation (possibly a traceable coupled successor if #1145 cannot be admitted alone). Keep DOMPurify regression tests, avoid overrides outside supported compatibility, no scanner waiver. Do not merge or claim required checks green yet; exact-head and resulting-main receipt mandatory.

@codeant-ai

codeant-ai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

📊 CodeAnt Coverage Report

Commit: d1db37b3
Scan Time: 2026-10-30 08:35:07 UTC

ℹ️ Status: Not applicable

Coverage Metrics

Metric Value Status
New Code Coverage Not applicable — no applicable code changes ℹ️ Not applicable

New-code coverage threshold not configured; coverage is reported but not enforced.

Overall coverage is informational; no total-coverage threshold is enforced.

Details

New Code Coverage: Not applicable — no applicable code changes

View Coverage Report

codescene-access[bot]

This comment was marked as outdated.

@qnbs qnbs changed the title fix(security): update DOMPurify to 3.4.17 fix(security): update DOMPurify and ip-address Oct 30, 2026

qnbs commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

@CodeAnt-AI review

@codescene-access codescene-access Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gates Passed
3 Quality Gates Passed

See analysis details in CodeScene

Quality Gate Profile: The Bare Minimum
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.

qnbs commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

Evidence update for the required all-lockfile OSV gate: a paired local diagnostic scanned exact base de346f04f0d93f6303ad02847bb8f405356d24ce and this PR head d1db37b37ac3fc0a94983fd33c450781302afbda with osv-scanner 2.6.0. It found 33 base rows and 29 PR rows; the only four-row delta is the intended DOMPurify 3.4.16 and ip-address 10.7.2 advisory removal, with no new findings. Both scans still fail and report unused config ignore GHSA-hp3w-g68c-fv3c. This diagnostic does not replace the failing exact-head Actions v2.7.0 scan or make the PR mergeable. I recorded report hashes, package counts, limitations, and the bounded next step in #1146.

qnbs commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

Correction on the unused GHSA-hp3w-g68c-fv3c ignore: the dependency is still present as sprintf-js@1.0.3 through mammoth → argparse. OSV's current record was modified 2026-10-22 and explicitly marks the advisory withdrawn, which explains why the configured ignore is no longer consumed. This is documented with the live OSV record in #1146. The ignore should be removed in the eventual coupled scanner-configuration correction; its removal alone would not clear the 29 remaining findings or make this PR mergeable.

qnbs commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

2026-10-30 — direct writer handoff / do not duplicate already fixed work

Current PR #1145 head d1db37b37ac3fc0a94983fd33c450781302afbda has already removed the three DOMPurify and one ip-address advisory row. The exact OSV v2.7.0 Security job 123968778411 still reports 29 rows / 11 package@version combos across all three lockfiles. The newer independent PR #1148 has 33 rows / 13 combos because it is not based on this PR's security dependency corrections. This is a dependency-base distinction, not an AI-cache feature regression.

Execute next: #1146 complete S0 dossier with actual package/OSV matrix, patchable npm cohort, Zod patch/peer paths, Core/Tauri crypto MSRV and no-fix deepmerge decision. First implement signed, source-proven compatible undici + dev npm fixes in one owned security checkout; then isolate Zod, Rust/crypto and deepmerge. Existing repo pnpm-workspace.yaml pins minimumReleaseAge: 10080 and patches/zod@4.4.3.patch, which must be preserved/requalified rather than silently dropped. The unused GHSA-hp3w-g68c-fv3c ignore is withdrawn despite sprintf-js still being locked; remove it with direct scanner proof. No security bypass, no cherry-pick into product PRs, no premature merge.

Commit budget / scope: PR currently 6 commits/8 files; verify base→prospective budget and active writer lease before any change. If the valid fix cannot fit as a narrow correction of #1145, use an explicitly related successor and preserve this PR's four already-proven sanitizer/ip-address regressions. Required hosted Security/CI, signatures, Rust and E2E must all pass on exact integrating head; CodeQL/CodeScene approval alone is insufficient. Blocked upstream/MSRV routes need a concise maintainer decision, not an untested override.

This branch was successfully deployed

1 active (outdated) deployment
Preview — c406eb4c Deployed Oct 30, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant