CVE-2022-36020: Typo3/html sanitizer Cross-Site Scripting Vulnerability

MODERATE
Advisory Identifier: GHSA-47m6-46mj-p235
CVSS 6.1
CWE-79
Published
Advisory Summary

CVE-2022-36020 is a MODERATE (CVSS 6.1) cross-site scripting vulnerability (CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')) affecting Typo3/html sanitizer libraries in the Packagist ecosystem. The issue involves typo3 html sanitizer bypasses cross-site scripting protection. Remediation is available by upgrading affected packages to version 1.0.7, 2.0.16, 10.4.32, 11.5.16.

CVE-2022-36020 at a Glance

CVE Identifier CVE-2022-36020
GHSA Identifier GHSA-47m6-46mj-p235
Severity MODERATE
CVSS v3.1 Base Score 6.1
CWE Classification CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Affected Product Typo3/html sanitizer
Package Ecosystem Packagist
Published Date
Last Updated

Security Impact

CVSS: 6.1

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction Required (UI:R)
Scope Changed (S:C)
Confidentiality Low (C:L)
Integrity Low (I:L)
Availability None (A:N)

How to Fix CVE-2022-36020

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

typo3/html-sanitizer fixed: 1.0.7
Upgrade typo3/html-sanitizer to 1.0.7
typo3/html-sanitizer fixed: 2.0.16
Upgrade typo3/html-sanitizer to 2.0.16
typo3/cms-core fixed: 10.4.32
Upgrade typo3/cms-core to 10.4.32
typo3/cms-core fixed: 11.5.16
Upgrade typo3/cms-core to 11.5.16
typo3/cms fixed: 10.4.32
Upgrade typo3/cms to 10.4.32
typo3/cms fixed: 11.5.16
Upgrade typo3/cms to 11.5.16
Verify Direct and Transitive Dependencies

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

inspect dependencies for typo3/html-sanitizer

How to Check if You Are Affected

To determine whether your application is affected by CVE-2022-36020, inspect your project dependencies for Typo3/html sanitizer:

inspect dependencies for typo3/html-sanitizer

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

Note: Verify declared build manifests and deployed runtime container environments.

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 Typo3/html sanitizer, 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

> ### Meta > * CVSS: `CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N/E:F/RL:O/RC:C` (5.7) ### Problem Due to a parsing issue in upstream package [`masterminds/html5`](https://packagist.org/packages/masterminds/html5), malicious markup used in a sequence with special HTML comments cannot be filtered and sanitized. This allows to by-pass the cross-site scripting mechanism of `typo3/html-sanitizer`. ### Solution Update to `typo3/html-sanitizer` versions 1.0.7 or 2.0.16 that fix the problem described. ### Credits Thanks to David Klein who reported this issue, and to TYPO3 security team member Oliver Hader who fixed the issue.

CVE-2022-36020 Affected Typo3/html sanitizer Versions

6 component(s)
Fixed Versions:
1.0.72.0.1610.4.3211.5.16
Product / Package Ecosystem Affected Versions Fixed Version
typo3/html-sanitizer
Packagist
≥ 1.0.0
< 1.0.7
1.0.7
typo3/html-sanitizer
Packagist
≥ 2.0.0
< 2.0.16
2.0.16
typo3/cms-core
Packagist
≥ 10.0.0
< 10.4.32
10.4.32
typo3/cms-core
Packagist
≥ 11.0.0
< 11.5.16
11.5.16
typo3/cms
Packagist
≥ 10.0.0
< 10.4.32
10.4.32
typo3/cms
Packagist
≥ 11.0.0
< 11.5.16
11.5.16

References

Frequently Asked Questions

What is CVE-2022-36020?
CVE-2022-36020 is a security vulnerability in Typo3/html sanitizer involving TYPO3 HTML Sanitizer Bypasses Cross-Site Scripting Protection under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting').
Which Typo3/html sanitizer versions are affected?
Affected versions include releases prior to 1.0.7, 2.0.16, 10.4.32, 11.5.16 across affected packages: typo3/html-sanitizer, typo3/cms-core, typo3/cms.
What version fixes CVE-2022-36020?
Upgrading to 1.0.7, 2.0.16, 10.4.32, 11.5.16 (or the latest patched release for your respective branch) resolves the vulnerability.
Is typo3/html-sanitizer affected?
Yes, typo3/html-sanitizer is affected in releases prior to 1.0.7, 2.0.16. Upgrade your dependency to 1.0.7, 2.0.16 or later.
Is typo3/cms-core affected?
Yes, typo3/cms-core is affected in releases prior to 10.4.32, 11.5.16. Upgrade your dependency to 10.4.32, 11.5.16 or later.
What is the CVSS score of CVE-2022-36020?
CVE-2022-36020 has a CVSS v3.1 base score of 6.1 (MODERATE) with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N.
What CWE is associated with CVE-2022-36020?
CVE-2022-36020 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 Packagist dependencies for CVE-2022-36020?
Run the dependency tree command: 'inspect dependencies for typo3/html-sanitizer'. 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-47m6-46mj-p235",
  "modified" : "2022-09-16T18:50:12Z",
  "published" : "2022-09-16T18:50:12Z",
  "aliases" : [ "CVE-2022-36020" ],
  "summary" : "TYPO3 HTML Sanitizer Bypasses Cross-Site Scripting Protection",
  "details" : "> ### Meta\n> * CVSS: `CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N/E:F/RL:O/RC:C` (5.7)\n\n### Problem\nDue to a parsing issue in upstream package [`masterminds/html5`](https://packagist.org/packages/masterminds/html5), malicious markup used in a sequence with special HTML comments cannot be filtered and sanitized. This allows to by-pass the cross-site scripting mechanism of `typo3/html-sanitizer`.\n\n### Solution\nUpdate to `typo3/html-sanitizer` versions 1.0.7 or 2.0.16 that fix the problem described.\n\n### Credits\nThanks to David Klein who reported this issue, and to TYPO3 security team member Oliver Hader who fixed the issue.\n",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Packagist",
      "name" : "typo3/html-sanitizer"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.0.0"
      }, {
        "fixed" : "1.0.7"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Packagist",
      "name" : "typo3/html-sanitizer"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "2.0.0"
      }, {
        "fixed" : "2.0.16"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Packagist",
      "name" : "typo3/cms-core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "10.0.0"
      }, {
        "fixed" : "10.4.32"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Packagist",
      "name" : "typo3/cms-core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "11.0.0"
      }, {
        "fixed" : "11.5.16"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Packagist",
      "name" : "typo3/cms"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "10.0.0"
      }, {
        "fixed" : "10.4.32"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Packagist",
      "name" : "typo3/cms"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "11.0.0"
      }, {
        "fixed" : "11.5.16"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/TYPO3/html-sanitizer/security/advisories/GHSA-47m6-46mj-p235"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2022-36020"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/TYPO3/html-sanitizer/commit/60bfdc7f9b394d0236e16ee4cea8372a7defa493"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/FriendsOfPHP/security-advisories/blob/master/typo3/cms-core/CVE-2022-36020.yaml"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/FriendsOfPHP/security-advisories/blob/master/typo3/cms/CVE-2022-36020.yaml"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/FriendsOfPHP/security-advisories/blob/master/typo3/html-sanitizer/CVE-2022-36020.yaml"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/TYPO3/html-sanitizer"
  }, {
    "type" : "WEB",
    "url" : "https://packagist.org/packages/masterminds/html5"
  }, {
    "type" : "WEB",
    "url" : "https://packagist.org/packages/typo3/html-sanitizer"
  }, {
    "type" : "WEB",
    "url" : "https://typo3.org/security/advisory/typo3-core-sa-2022-011"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-79" ],
    "severity" : "MODERATE",
    "github_reviewed" : true,
    "github_reviewed_at" : "2022-09-16T18:50:12Z",
    "nvd_published_at" : "2022-09-13T17:15:00Z"
  }
}