GHSA-w9hm-4m3m-fxmm: Npm/ngx-extended-pdf-viewer vulnerability
ngx-extended-pdf-viewer embeds a fork of Mozilla's pdf.js rather than depending on pdfjs-dist, so this vulnerability is not visible to dependency scanners through package.json.
Impact Opening a malicious PDF can execute attacker-controlled JavaScript in the context of the hosting page. Upstream advisory: GHSA-hq66-cqwq-w95j / CVE-2026-16633.
Exposure. The sandbox half of the issue requires enableScripting, which pdf.js enables by default but this library does not — so the default configuration was less exposed than upstream's. The other half concerns XFA rich text and is reachable whenever enableXfa is true, which is the default here. Do not assume the default configuration was safe.
Patches 29.0.0-rc.3 cherry-picks Mozilla's fix (pdf.js 6.2.108) into both the stable and bleeding-edge engines. Only the latest release receives security updates.
Workarounds Set pdfDefaultOptions.enableXfa = false if you do not need XFA forms, and/or apply a CSP disallowing inline script-src.
Verifying. From 29.0.0 the package ships sbom.json and vex.json. The SBOM records the applied fix as a CycloneDX pedigree.patches entry; the VEX carries a resolvedwithpedigree statement so scanners stop flagging the engine's nominal version.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/ngx-extended-pdf-viewerto a version that resolves this vulnerability.Fixed in 29.0.0-rc.3 - Upgrade
Upgrade
pdf.js (Mozilla)to a version that resolves this vulnerability.Fixed in 29.0.0-rc.3 - Configuration
Set pdfDefaultOptions.enableXfa = false if you do not need XFA forms.
pdf.js pdfDefaultOptions.enableXfa = false - Configuration
Apply a CSP disallowing inline script-src to prevent attacker-controlled JavaScript from executing in the context of the hosting page.
Hosting page Content Security Policy (CSP) script-src = disallow inline script-src