GHSA-W9HM-4M3M-FXMM

Vulnerability from github – Published: 2026-08-06 21:13 – Updated: 2026-08-06 21:13
VLAI
Summary
ngx-extended-pdf-viewer bundles a version of pdf.js vulnerable to CVE-2026-16633
Details

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 resolved_with_pedigree statement so scanners stop flagging the engine's nominal version.

Show details on source website

{
  "affected": [
    {
      "package": {
        "ecosystem": "npm",
        "name": "ngx-extended-pdf-viewer"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "27.0.0-rc.0"
            },
            {
              "fixed": "29.0.0-rc.3"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [],
  "database_specific": {
    "cwe_ids": [
      "CWE-1103"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-08-06T21:13:59Z",
    "nvd_published_at": null,
    "severity": "HIGH"
  },
  "details": "ngx-extended-pdf-viewer embeds a fork of Mozilla\u0027s pdf.js rather than depending on pdfjs-dist, so this vulnerability is not visible to dependency scanners through package.json.\n\n### Impact\nOpening a malicious PDF can execute attacker-controlled JavaScript in the context of the hosting page. Upstream advisory: GHSA-hq66-cqwq-w95j / CVE-2026-16633.\n\n### Exposure. \nThe sandbox half of the issue requires enableScripting, which pdf.js enables by default but this library does not \u2014 so the default configuration was less exposed than upstream\u0027s. 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.\n\n### Patches\n29.0.0-rc.3 cherry-picks Mozilla\u0027s fix (pdf.js 6.2.108) into both the stable and bleeding-edge engines. Only the latest release receives security updates.\n\n### Workarounds\nSet pdfDefaultOptions.enableXfa = false if you do not need XFA forms, and/or apply a CSP disallowing inline script-src.\n\n### Verifying. \nFrom 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 resolved_with_pedigree statement so scanners stop flagging the engine\u0027s nominal version.",
  "id": "GHSA-w9hm-4m3m-fxmm",
  "modified": "2026-08-06T21:13:59Z",
  "published": "2026-08-06T21:13:59Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/stephanrauh/ngx-extended-pdf-viewer/security/advisories/GHSA-w9hm-4m3m-fxmm"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/stephanrauh/ngx-extended-pdf-viewer"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
      "type": "CVSS_V4"
    }
  ],
  "summary": "ngx-extended-pdf-viewer bundles a version of pdf.js vulnerable to CVE-2026-16633"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…