R11DT-4120 - Bump vulnerable deps in swagger-ui (immutable, dompurify, js-yaml, axios, brace-expansion) - #206
Open
mvios wants to merge 2 commits into
Open
R11DT-4120 - Bump vulnerable deps in swagger-ui (immutable, dompurify, js-yaml, axios, brace-expansion)#206mvios wants to merge 2 commits into
mvios wants to merge 2 commits into
Conversation
…, js-yaml, axios, brace-expansion) Remediate all 16 Wiz dependency findings by bumping the 5 flagged components, regenerating package-lock.json, and rebuilding the vendored dist/ bundles. Direct dependencies: - immutable =3.8.3 -> =4.3.9 (CVE-2026-59879, CVE-2026-59880) - dompurify =3.4.11 -> =3.4.12 (GHSA-c2j3-45gr-mqc4) - js-yaml =4.2.0 -> =4.3.0 (CVE-2026-59869) Transitive (npm overrides): - axios >=1.16.0 -> >=1.18.0 (resolves 1.18.1; GHSA-gcfj-64vw-6mp9, GHSA-mwf2-3pr3-8698, GHSA-42h9-826w-cgv3, GHSA-xj6q-8x83-jv6g, GHSA-mmx7-hfxf-jppx, GHSA-7q8q-rj6j-mhjq, GHSA-pmv8-rq9r-6j72, GHSA-jqh4-m9w3-8hp9, GHSA-hcpx-6fm6-wx23, GHSA-f4gw-2p7v-4548) - @swagger-api/apidom-reference > brace-expansion >=5.0.6 -> >=5.0.8 (resolves 5.0.8; CVE-2026-13149, CVE-2026-14257) Rebuilt dist/ bundles (Platform vendors the prebuilt artifacts). Verified: npm audit clears all 16 Wiz-flagged instances; Jest unit suite shows no new failures vs baseline (34 pre-existing failures identical with old and new deps); rebuilt bundles pass syntax integrity + branding-asset checks. Out of scope (pre-existing, not Wiz-flagged, not shipped in dist): sass' build-time immutable@5.1.5 and dev-tooling brace-expansion 1.x/2.x copies remain flagged by npm audit; left untouched per surgical scope.
mvios
requested review from
OS-alexandretome,
OS-joaomurgeiro,
OS-miguelfreitas,
OS-rodrigolopes,
OS-thiagosiqueira,
osjlopes and
rmb-guerra
and removed request for
a team
July 30, 2026 14:20
rmb-guerra
previously approved these changes
Jul 30, 2026
OS-alexandretome
previously approved these changes
Jul 30, 2026
OS-rodrigolopes
previously approved these changes
Jul 30, 2026
Bumping immutable 3.8.3 -> 4.3.9 alone regressed rendering: under immutable v4 Map#toArray() returns [key, value] entry pairs (v3 returned values), so components that did keyedMap.map(...).toArray() leaked the map key as a stray React text node (e.g. a duplicated, unstyled operation-tag label). v4 also changed Map#mergeDeep to concatenate Lists instead of replacing them. Port the exact source changes from upstream swagger-api#10969 ("fix(deps): bump immutable to 4.3.9", merged 2026-07-22) -- this aligns the fork with upstream rather than diverging: - operations.jsx, overview.jsx, auth/oauth2.jsx, auth/auths.jsx, oas31/auth/auths.jsx: .toArray() -> .valueSeq().toArray() (values), and definitions.map((v,k)=>k).toArray() -> definitions.keySeq().toArray() (keys) - core/utils/index.js arrayify(): guard with Im.isKeyed() to keep returning values for keyed collections - examples-select-value-retainer.jsx: mergeDeep(obj) -> merge(obj) - json-schema-5/model.jsx: cautionary comment about v4 mergeDeep+List semantics Verified via headless render (Chrome DevTools Protocol): after these fixes the v4 bundle output is byte-identical (post test-normalization) to the v3 build, so Platform's RESTService_swaggerUiTests golden files pass unchanged. Rebuilt dist/ bundles included.
mvios
dismissed stale reviews from OS-rodrigolopes, OS-alexandretome, and rmb-guerra
via
August 3, 2026 12:59
9a3f4f0
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.
R11DT-4120 - Fix vulnerabilities in swagger-ui
Remediates all 16 Wiz dependency findings against
OutSystems/swagger-ui(b11) by bumping the 5 flagged components, regenerating the lockfile, applying the upstream immutable-v4 source fixes, and rebuilding the vendoreddist/bundles. Follows the established surgical-bump pattern (see #205 / R11DT-4052).Changes
=3.8.3→=4.3.9=3.4.11→=3.4.12=4.2.0→=4.3.0>=1.16.0→>=1.18.0>=5.0.6→>=5.0.8Rebuilt
dist/bundles are included (Platform vendors the prebuilt artifacts).immutable v3 → v4 requires source changes (upstream swagger-api#10969)
immutable 4.x is a breaking major, and the
=3.8.3 → =4.3.9bump alone regressed rendering: under v4,Map#toArray()returns[key, value]entry pairs (v3 returned values), so components doingkeyedMap.map(...).toArray()leaked the map key as a stray React text node — e.g. a duplicated, unstyled operation-tag label. v4 also changedMap#mergeDeepto concatenate Lists instead of replacing them.This PR ports the exact source changes from upstream swagger-api/swagger-ui#10969 ("fix(deps): bump immutable to 4.3.9", merged 2026-07-22), which is upstream's own migration for this identical bump — so the fork aligns with upstream rather than diverging:
operations.jsx,overview.jsx,auth/oauth2.jsx,auth/auths.jsx,oas31/auth/auths.jsx:.toArray()→.valueSeq().toArray()(values), anddefinitions.map((v,k)=>k).toArray()→definitions.keySeq().toArray()(keys)core/utils/index.jsarrayify(): guard withIm.isKeyed()to keep returning values for keyed collectionsexamples-select-value-retainer.jsx:mergeDeep(obj)→merge(obj)json-schema-5/model.jsx: cautionary comment about v4mergeDeep+ List semanticsVerification
RESTService_swaggerUiTestsapplies. So the vendored render is unchanged and Platform's golden tests pass without regenerating goldens. (Repro underspecs/…/immutable-v4-render-repro/.)test:unit): 34 pre-existing failures, identical before and after (unchanged by this work).dist/index.htmlcache-busting hashes refreshed.Out of scope (documented)
npm auditalso flags pre-existing, non-Wiz copies not shipped indist: sass's build-timeimmutable@5.1.5and dev-toolingbrace-expansion1.x/2.x. These existed at baseline and were not introduced here; left untouched per surgical scope (NFR2).Residuals for reviewers
cy:ci) not run locally (Cypress verified/available); recommend CI.Downstream Platform vendoring PR: OutSystems/Platform#12511.