GitHub Advisoryadvisory · Packagist

GHSA-cv23-q6gh-xfrf WooCommerce has a Cross-Site Scripting (XSS) Vulnerability in checkout & registration forms

MEDIUM Published 2024-06-12 Modified 2024-07-24 Official page ↗
Aliases
CVE-2024-37297
Ecosystem
Packagist
Packages
woocommerce/woocommerce
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Weaknesses
CWE-79, CWE-80
Reviewed
2024-06-12

Affected packages

• Packagist woocommerce/woocommerce: >= 8.8.0, < 8.8.5 → fixed in 8.8.5 • Packagist woocommerce/woocommerce: >= 8.9.0, < 8.9.3 → fixed in 8.9.3

Description

Impact A vulnerability introduced in WooCommerce 8.8 allows for cross-site scripting. A bad actor can manipulate a link to include malicious HTML & JavaScript content. While the content is not saved to the database, the links may be sent to victims for malicious purposes. The injected JavaScript could hijack content & data stored in the browser, including the session. The URL content is read through the Sourcebuster.js library and then inserted without proper sanitization to the classic checkout and registration forms. Patches ```diff diff --git a/plugins/woocommerce/client/legacy/js/frontend/order-attribution.js b/plugins/woocommerce/client/legacy/js/frontend/order-attribution.js index 79411e928e1..25eaa721c54 100644 --- a/plugins/woocommerce/client/legacy/js/frontend/order-attribution.js +++ b/plugins/woocommerce/client/legacy/js/frontend/order-attribution.js @@ -155,12 +155,16 @@ • but it's not yet supported in Safari. */ connectedCallback() { - let inputs = ''; + this.innerHTML = ''; + const inputs = new DocumentFragment(); for( const fieldName of this._fieldNames ) { - const value = stringifyFalsyInputValue( this.values[ fieldName ] ); - inputs += ``; + const input = document.createElement( 'input' ); + input.type = 'hidden'; + input.name = `${params.prefix}${fieldName}`; + input.value = stringifyFalsyInputValue( ( this.values && this.values[ fieldName ] ) || '' ); + inputs.appendChild( input ); } - this.innerHTML = inputs; + this.appendChild( inputs ); } /** ``` Workarounds Disabling the Order Attribution feature References A8C SIRT: p3btAN-2L2-p2 (internal) Public disclosure: https://developer.woocommerce.com/2024/06/10/developer-advisory-xss-vulnerability-8-8-0/

Related

Alias · CVE (1)

  • CVE-2024-37297 WooCommerce is an open-source e-commerce platform built on WordPress. vulnerability

Weakness · CWE (2)

  • CWE-79 Improper Neutralization of Input During Web Page Generation weakness
  • CWE-80 Improper Neutralization of Script-Related HTML Tags in a Web Page weakness

References