Skip to content

fix(security): bump pdfjs-dist 6.2.108 (CVE-2026-16633), undici >=7.29.0, nanoid 3.3.18 - #1023

Closed
seonghobae wants to merge 1 commit into
developfrom
fix/npm-cve-pdfjs-undici
Closed

fix(security): bump pdfjs-dist 6.2.108 (CVE-2026-16633), undici >=7.29.0, nanoid 3.3.18#1023
seonghobae wants to merge 1 commit into
developfrom
fix/npm-cve-pdfjs-undici

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Security Notes

Findings remediated (all real trivy-fs / npm-audit findings blocking open PRs)

Package From → To Advisory Severity
pdfjs-dist 6.1.200 → 6.2.108 CVE-2026-16633 / GHSA-hq66-cqwq-w95j (XSS via enableScripting) HIGH (8.0–8.1)
undici (transitive via jsdom) 7.28.0 → 7.29.0 (root override ^7.29.0) GHSA-8xcm-r25x-g524, GHSA-4cwx-7wf7-3272, GHSA-m8rv-5g2x-5cg5, GHSA-jr45-8vmc-qm54, GHSA-v3r7-h72x-cjcm HIGH/MEDIUM
nanoid <3.3.18 → 3.3.18 GHSA-2v37-7h3g-55p8 (infinite loop w/ zero-size custom generator) HIGH

Untrusted-input context

pdfjs-dist renders untrusted PDF files in the desktop intake path; the fixed
version removes arbitrary-JS execution on crafted PDFs when scripting is
enabled and no CSP restricts script-src. Safe-failure behavior is unchanged:
malformed PDFs still fail closed to an import error.

Verification

  • npm audit: 0 vulnerabilities after change.
  • Frontend workspace tests: 100% statements / branches / functions / lines.
  • Production build succeeds.

Expected effect on PR queue

trivy-fs (CVE-2026-16633 finding) and security-audit (undici/nanoid advisories)
failures across the ~129 open PRs are inherited from develop; merging this to
develop lets PR branches inherit green dependency scans after their next
update-branch.


Open in Devin Review

… >=7.29.0, nanoid to 3.3.18

- pdfjs-dist 6.1.200 -> 6.2.108 fixes GHSA-hq66-cqwq-w95j /
  CVE-2026-16633 (HIGH, XSS via enableScripting on crafted PDFs).
- Root npm override pins undici ^7.29.0 (transitive via jsdom) fixing
  GHSA-8xcm-r25x-g524, GHSA-4cwx-7wf7-3272, GHSA-m8rv-5g2x-5cg5,
  GHSA-jr45-8vmc-qm54, GHSA-v3r7-h72x-cjcm.
- nanoid refreshed to 3.3.18 (GHSA-2v37-7h3g-55p8).
- npm audit: 0 vulnerabilities after change; workspace tests pass with
  100% statement/branch/function/line coverage.
@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 56 minutes.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e2838c9d-aff4-4c0c-afa4-0785542c9b46

📥 Commits

Reviewing files that changed from the base of the PR and between acdbea6 and df21254.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • apps/desktop/package.json
  • package.json

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@devin-ai-integration devin-ai-integration 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.

Devin Review found 2 potential issues.

Open in Devin Review

Comment thread package.json
"brace-expansion": "5.0.9",
"postcss": "8.5.25"
"postcss": "8.5.25",
"undici": "^7.29.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📝 Info: undici override uses a caret, siblings pin exact versions

The new override undici: "^7.29.0" (package.json) is a caret range, while brace-expansion and postcss next to it pin exact versions. It stays bounded below 8.0.0 and the lockfile resolves 7.29.0, so behavior is fine today, but it can float within 7.x on a future lockfile regeneration.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread package.json
Comment on lines +40 to +41
"postcss": "8.5.25",
"undici": "^7.29.0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📝 Info: nanoid fix enforced only by the lockfile

The nanoid 3.3.18 remediation was applied by bumping the lockfile, with no override added. nanoid is transitive via postcss (range ^3.3.x), so regeneration still resolves >=3.3.18 and the fix holds. The remediation rests on the committed lockfile alone, not a pin.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Collaborator Author

Closing this as a semantic duplicate of the canonical dependency-security owner #783 after a fresh exact-head comparison.

Evidence at close time:

The unresolved informational review comments on #1023 reinforce that its lock/provenance contract is weaker than #783; they are not migrated because the canonical branch already has the stronger exact-version/provenance boundary.

This closure does not claim the dependency remediation is shipped on protected develop: #783 is still open and must satisfy its unchanged exact-head central Strix/review/approval gates before ordinary protected merge. Dependency-security writer authority remains #783 only.

@seonghobae seonghobae closed this Aug 25, 2026
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.

1 participant