fix(agentex-ui): bump postcss to >=8.5.10 (CVE-2026-41305) - #360
Merged
Conversation
postcss was pulled in transitively at 8.4.31 (via next) and 8.5.6 (via the tailwindcss v4 toolchain), both vulnerable to CVE-2026-41305 (GHSA-qx2v-qp2m-jg93, XSS via improper escaping of style closing tags). Add a postcss override (^8.5.10) so both copies resolve to a fixed version. npm dedupes to a single hoisted postcss 8.5.19; the vulnerable 8.4.31/8.5.6 copies are removed. Verified npm ci stays in sync. Resolves GFDVR-17703 (children GFDVR-17706, GFDVR-17707). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve package.json overrides conflict: keep this PR's postcss ^8.5.10 (CVE-2026-41305) alongside main's tar ^7.5.16 bump. Lockfile reconciled via npm install --package-lock-only (postcss 8.5.19, tar 7.5.20 — both satisfy the overrides). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
declan-scale
approved these changes
Jul 15, 2026
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
Remediates CVE-2026-41305 (MEDIUM) — PostCSS XSS via improper escaping of style closing tags (GHSA-qx2v-qp2m-jg93).
postcssis a transitive dependency ofagentex-ui/, present at two vulnerable versions in the built image (golden/agentex-ui):node_modules/postcss8.5.6@tailwindcss/postcssnode_modules/next/node_modules/postcss8.4.31next15.5.18 (exact pin)Both are
< 8.5.10(the fixed version), so a single override past the fix clears both.Change
agentex-ui/package.json: add"postcss": "^8.5.10"to the existingoverridesblock (the idiomatic npm mechanism for forcing a transitive dep; the repo already overridescross-spawnandtarthe same way).agentex-ui/package-lock.json: regenerated withnpm install --package-lock-only. npm dedupes to a single hoistedpostcss8.5.19 (latest 8.5.x, satisfies^8.5.10); the nestednext/node_modules/postcss8.4.31 copy is removed. Net lockfile change is a removal (9 insertions / 34 deletions).Safety
Bumping
postcssfrom 8.4.31/8.5.6 to 8.5.x is a minor bump within major 8 (no major boundary crossed); PostCSS maintains backward compatibility within a major, andnext15.5.x already runs againstpostcss8.5.x (the top-level copy was 8.5.6). The override only supersedes next's exact8.4.31pin, which is a reproducibility pin rather than a compatibility ceiling.Verification
npm ci --dry-runresolves cleanly (717 packages, no lockfile-sync error) — matches the Dockerfile build gate (npm ci).postcss < 8.5.10anywhere in the lockfile.Resolves GFDVR-17703 (children GFDVR-17706 postcss@8.4.31, GFDVR-17707 postcss@8.5.6).
Greptile Summary
This PR remediates CVE-2026-41305, a MEDIUM-severity PostCSS XSS vulnerability (GHSA-qx2v-qp2m-jg93), by forcing the transitive
postcssdependency to>=8.5.10via npm'soverridesmechanism inagentex-ui/package.json.package.json: Adds"postcss": "^8.5.10"to the existingoverridesblock — the same pattern already used forcross-spawnandtar.package-lock.json: npm deduplicates to a single hoistedpostcss@8.5.19, removing the previously nestednext/node_modules/postcss@8.4.31copy and bumping the top-level copy from8.5.6to8.5.19;nanoidis also incidentally bumped from3.3.11to3.3.16as a transitive side-effect of postcss's updated peer requirements.Confidence Score: 5/5
Safe to merge — a focused transitive dependency override that removes two vulnerable PostCSS copies and deduplicates to a single patched version with no functional code changes.
The change is minimal and mechanical: one line added to the overrides block in package.json, and the lockfile reflects exactly the expected deduplication (nested next/postcss copy gone, top-level hoisted to 8.5.19). The bump stays within major version 8 and is consistent with how next already ran against 8.5.x at the top level. No application code is touched.
No files require special attention.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A["agentex-ui/package.json\noverrides: postcss ^8.5.10"] --> B["npm install"] B --> C{"npm deduplication"} C -->|"Before - vulnerable"| D["postcss@8.5.6\ntailwindcss path"] C -->|"Before - vulnerable"| E["next/postcss@8.4.31\nnested copy"] C -->|"After - fixed"| F["postcss@8.5.19\nsingle hoisted copy"] D --> X["XSS Risk\nCVE-2026-41305"] E --> X F --> Y["Fixed - no more vulnerable copies"]%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%% flowchart TD A["agentex-ui/package.json\noverrides: postcss ^8.5.10"] --> B["npm install"] B --> C{"npm deduplication"} C -->|"Before - vulnerable"| D["postcss@8.5.6\ntailwindcss path"] C -->|"Before - vulnerable"| E["next/postcss@8.4.31\nnested copy"] C -->|"After - fixed"| F["postcss@8.5.19\nsingle hoisted copy"] D --> X["XSS Risk\nCVE-2026-41305"] E --> X F --> Y["Fixed - no more vulnerable copies"]Reviews (2): Last reviewed commit: "Merge main into prodsec/gfdvr-17703-post..." | Re-trigger Greptile