Repository navigation
Conversation
Update the transitive dompurify from 3.2.4 to 3.4.16 in the lockfile. Add a scoped npm override that sets uuid to 11.1.1 for launchdarkly-js-sdk-common. This is the focused security part of #779. Co-authored-by: rniebla <rniebla@launchdarkly.com>
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.
Requirements
Related issues
This PR gives only the security fixes that the Dependabot group PR #779 names: dompurify and uuid. PR #779 also updates
@launchpad-ui/componentsto 0.23,react-routerto 8,viteto 8, andlaunchdarkly-js-client-sdkto 3.9.5. Its description does not name these updates. With them,npm cifails on React 19 peer dependencies. This PR does not include these updates. PRs #740 and #777 used the same focused approach.This PR does not close #779.
Describe the solution you've provided
Both packages are transitive dependencies of the dev server UI (
internal/dev_server/ui).@launchpad-ui/core→@launchpad-ui/markdown→isomorphic-dompurify(^3.1.6)launchdarkly-js-client-sdk3.4.0 →launchdarkly-js-sdk-common5.3.0 (^8.0.0)The dompurify range
^3.1.6already allows 3.4.16, so no override is necessary for dompurify. The uuid range^8.0.0does not allow a patched version. The only other fix is to update the JS SDK, which is out of scope. Thus, the PR adds this scoped override inpackage.json:launchdarkly-js-sdk-commoncalls onlyv1()from uuid, with no buffer argument. uuid 11 exportsv1forrequire. A local check loaded the module with uuid 11.1.1 and it worked.The lockfile diff changes only the
dompurifyanduuidentries.Advisories that this PR fixes:
PR #779 uses dompurify 3.4.13. GitHub published GHSA-6688-9rhm-gjv2 on Oct 5, 2026, after #779 opened. That advisory needs 3.4.16. Thus, 3.4.16 is the lowest version that clears all dompurify advisories.
npm auditininternal/dev_server/ui:--omit=dev)--omit=dev)The audit removed dompurify, uuid,
launchdarkly-js-sdk-common, andlaunchdarkly-js-client-sdkfrom the report. The audit found no new advisories. The other findings were onmainbefore this change, and this PR does not touch them.Local checks in
internal/dev_server/ui, with Node 22 and npm 10.9:npm ci: passnpm run lint: passnpm run prettier:write: no changesnpm test: 5 tests passnpm run build: pass. The committeddist/did not change.Describe alternatives you've considered
npm ciand adds new high advisories.launchdarkly-js-client-sdkto 3.9.2 or later, which removes uuid. This is out of scope for this PR.Additional context
The built
dist/index.htmldid not change. The UI does not import@launchpad-ui/markdown, so the bundle does not contain dompurify. The prebuiltlaunchdarkly-js-client-sdkbundle contains its own copy of uuid 8 code. Thus, this PR clears the advisories from the installed dependency tree, but the shipped UI code stays the same. The SDK uses only uuidv1()without a buffer, so GHSA-w5hq-g745-h8pq does not apply to that code.PR #880 also changes this lockfile. If a conflict occurs, rebase on
mainand regenerate the lockfile.