GHSA-r3xc-47qg-h929: @ionic/core Cross-Site Scripting Vulnerability

HIGH
CWE-79
Published
Advisory Summary

GHSA-r3xc-47qg-h929 is a HIGH cross-site scripting vulnerability (CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')) affecting @ionic/core libraries in the npm ecosystem. The issue involves cross-site scripting in @ionic/core. Remediation is available by upgrading affected packages to version 4.0.3, 4.1.3, 4.2.1, 4.3.1.

GHSA-r3xc-47qg-h929 at a Glance

CVE Identifier N/A
GHSA Identifier GHSA-r3xc-47qg-h929
Severity HIGH
CVSS v3.1 Base Score N/A
CWE Classification CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Affected Product @ionic/core
Package Ecosystem npm
Published Date
Last Updated

How to Fix GHSA-r3xc-47qg-h929

To remediate this vulnerability, upgrade all affected @ionic/core dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

@ionic/core fixed: 4.0.3
npm install @ionic/core@4.0.3
@ionic/core fixed: 4.1.3
npm install @ionic/core@4.1.3
@ionic/core fixed: 4.2.1
npm install @ionic/core@4.2.1
@ionic/core fixed: 4.3.1
npm install @ionic/core@4.3.1
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

npm ls @ionic/core

How to Check if You Are Affected

To determine whether your Node.js application is affected by GHSA-r3xc-47qg-h929, inspect your project dependencies using npm:

npm ls @ionic/core

Analyze the terminal output to locate any version of @ionic/core in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 4.0.3), your application is affected.

Note: The npm ls @ionic/core command inspects dependencies declared in your package.json and lockfile; it does not perform automated runtime dynamic scanning.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'), where the product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. In @ionic/core, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

Versions of `@ionic/core` prior to 4.0.3, 4.1.3, 4.2.1 or 4.3.1 are vulnerable to Cross-Site Scripting (XSS). The package uses the unsafe `innerHTML` function without sanitizing input, which may allow attackers to execute arbitrary JavaScript on the victim's browser. This issue affects the components: - `<ion-alert>.message` - `<ion-searchbar>.placeholder` - `<ion-infinite-scroll-content>.loadingText` - `<ion-refresher-content>.pullingText` - `<ion-refresher-content>.refershingText` ## Recommendation - If you are using @ionic/core 4.0.x, upgrade to 4.0.3 or later. - If you are using @ionic/core 4.1.x, upgrade to 4.1.3 or later. - If you are using @ionic/core 4.2.x, upgrade to 4.2.1 or later. - If you are using @ionic/core 4.3.x, upgrade to 4.3.1 or later.

GHSA-r3xc-47qg-h929 Affected @ionic/core Versions

4 component(s)
Fixed Versions:
4.0.34.1.34.2.14.3.1
Product / Package Ecosystem Affected Versions Fixed Version
@ionic/core
npm
< 4.0.3
4.0.3
@ionic/core
npm
≥ 4.1.0
< 4.1.3
4.1.3
@ionic/core
npm
≥ 4.2.0
< 4.2.1
4.2.1
@ionic/core
npm
≥ 4.3.0
< 4.3.1
4.3.1

References

Frequently Asked Questions

What is GHSA-r3xc-47qg-h929?
GHSA-r3xc-47qg-h929 is a security vulnerability in @ionic/core involving Cross-Site Scripting in @ionic/core under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting').
Which @ionic/core versions are affected?
Affected versions include releases prior to 4.0.3, 4.1.3, 4.2.1, 4.3.1 across affected packages: @ionic/core.
What version fixes GHSA-r3xc-47qg-h929?
Upgrading to 4.0.3, 4.1.3, 4.2.1, 4.3.1 (or the latest patched release for your respective branch) resolves the vulnerability.
Is @ionic/core affected?
Yes, @ionic/core is affected in releases prior to 4.0.3, 4.1.3, 4.2.1, 4.3.1. Upgrade your dependency to 4.0.3, 4.1.3, 4.2.1, 4.3.1 or later.
What CWE is associated with GHSA-r3xc-47qg-h929?
GHSA-r3xc-47qg-h929 is classified under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') (The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.).
How can I check npm dependencies for GHSA-r3xc-47qg-h929?
Run the dependency tree command: 'npm ls @ionic/core'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-r3xc-47qg-h929",
  "modified" : "2021-09-28T17:38:45Z",
  "published" : "2020-09-03T17:06:09Z",
  "aliases" : [ ],
  "summary" : "Cross-Site Scripting in @ionic/core",
  "details" : "Versions of  `@ionic/core` prior to 4.0.3, 4.1.3, 4.2.1 or 4.3.1 are vulnerable to Cross-Site Scripting (XSS). The package uses the unsafe `innerHTML` function without sanitizing input, which may allow attackers to execute arbitrary JavaScript on the victim's browser. This issue affects the components:\n- `<ion-alert>.message`\n- `<ion-searchbar>.placeholder`\n- `<ion-infinite-scroll-content>.loadingText`\n- `<ion-refresher-content>.pullingText`\n- `<ion-refresher-content>.refershingText`\n\n\n## Recommendation\n\n- If you are using @ionic/core 4.0.x, upgrade to 4.0.3 or later.\n- If you are using @ionic/core 4.1.x, upgrade to 4.1.3 or later.\n- If you are using @ionic/core 4.2.x, upgrade to 4.2.1 or later.\n- If you are using @ionic/core 4.3.x, upgrade to 4.3.1 or later.",
  "severity" : [ ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@ionic/core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "4.0.3"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@ionic/core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "4.1.0"
      }, {
        "fixed" : "4.1.3"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@ionic/core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "4.2.0"
      }, {
        "fixed" : "4.2.1"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "npm",
      "name" : "@ionic/core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "4.3.0"
      }, {
        "fixed" : "4.3.1"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/ionic-team/ionic/issues/18065"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/ionic-team/ionic"
  }, {
    "type" : "WEB",
    "url" : "https://www.npmjs.com/advisories/1023"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-79" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2020-08-31T18:44:31Z",
    "nvd_published_at" : null
  }
}