CVE-2024-45389

Pagefind, a fully static search library, initializes its dynamic JavaScript and WebAssembly files relative to the location of the first script the user loads. This information is gathered by looking up the value of `document.currentScript.src`. Prior to Pagefind version 1.1.1, it is possible to "clobber" this lookup with otherwise benign HTML on the page. 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 a 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 cross-site scripting vector. Pagefind has tightened this resolution in version 1.1.1 by ensuring the source is loaded from a valid script element. There are no reports of this being exploited in the wild via Pagefind.
Configurations

Configuration 1 (hide)

cpe:2.3:a:cloudcannon:pagefinder:*:*:*:*:*:*:*:*

History

12 Sep 2024, 20:17

Type Values Removed Values Added
References () https://github.com/CloudCannon/pagefind/commit/14ec96864eabaf1d7d809d5da0186a8856261eeb - () https://github.com/CloudCannon/pagefind/commit/14ec96864eabaf1d7d809d5da0186a8856261eeb - Patch
References () https://github.com/CloudCannon/pagefind/security/advisories/GHSA-gprj-6m2f-j9hx - () https://github.com/CloudCannon/pagefind/security/advisories/GHSA-gprj-6m2f-j9hx - Vendor Advisory
References () https://github.com/webpack/webpack/security/advisories/GHSA-4vvj-4cpr-p986 - () https://github.com/webpack/webpack/security/advisories/GHSA-4vvj-4cpr-p986 - Not Applicable
CPE cpe:2.3:a:cloudcannon:pagefinder:*:*:*:*:*:*:*:*
First Time Cloudcannon
Cloudcannon pagefinder
CVSS v2 : unknown
v3 : 6.4
v2 : unknown
v3 : 5.4

04 Sep 2024, 13:05

Type Values Removed Values Added
Summary
  • (es) Pagefind, una librería de búsqueda completamente estática, inicializa sus archivos dinámicos de JavaScript y WebAssembly en relación con la ubicación del primer script que carga el usuario. Esta información se obtiene buscando el valor de `document.currentScript.src`. Antes de la versión 1.1.1 de Pagefind, era posible "bloquear" esta búsqueda con HTML benigno en la página. Esto hará que `document.currentScript.src` se resuelva como un dominio externo, que luego será utilizado por Pagefind para cargar dependencias. Esta vulnerabilidad solo funcionaría en el caso de que un atacante pudiera inyectar HTML en un sitio web alojado y en vivo. En estos casos, esto actuaría como una forma de escalar el privilegio disponible para un atacante. Esto supone que tienen la capacidad de agregar algunos elementos a la página (por ejemplo, etiquetas `img` con un atributo `name`), pero no otros, ya que agregar un `script` a la página sería en sí mismo el vector de cross-site scripting. Pagefind ha mejorado esta resolución en la versión 1.1.1 al garantizar que la fuente se cargue desde un elemento de script válido. No hay informes de que esto se haya explotado en la práctica a través de Pagefind.

03 Sep 2024, 20:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-09-03 20:15

Updated : 2024-09-12 20:17


NVD link : CVE-2024-45389

Mitre link : CVE-2024-45389

CVE.ORG link : CVE-2024-45389


JSON object : View

Products Affected

cloudcannon

  • pagefinder
CWE
CWE-79

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')