Cross site scripting via HTML attributes in the back end
The advisory, in context
Impact
It is possible for untrusted users to inject malicious code into HTML attributes in the back end, which will be executed both in the element preview (back end) and on the website (front end).
Installations are only affected if there are untrusted back end users who have the rights to modify HTML fields (e.g. TinyMCE).
Patches
Update to Contao 4.4.56, 4.9.18 or 4.11.7
Workarounds
Disable all fields that allow HTML for untrusted back end users or disable the login for these users.
References
https://contao.org/en/security-advisories/cross-site-scripting-via-html-attributes-in-the-back-end
For more information
If you have any questions or comments about this advisory, open an issue in contao/contao.
Credits
Thanks to Mikhail Khramenkov and Moritz Vondano for reporting this security issue.
Affected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
From 4.0.0 before 4.4.56
Fixed in 4.4.56
91 explicitly affected versions
4.0.0, 4.0.1, 4.0.2, 4.0.3, 4.0.4, 4.1.0, 4.1.0-RC1, 4.1.0-beta1, 4.1.1, 4.1.2, 4.1.3, 4.2.0, 4.2.0-RC1, 4.2.0-beta1, 4.2.1, 4.2.2, 4.2.3, 4.2.4, 4.2.5, 4.3.0, 4.3.0-RC1, 4.3.1, 4.3.10, 4.3.11, 4.3.2, 4.3.3, 4.3.4, 4.3.5, 4.3.6, 4.3.7, 4.3.8, 4.3.9, 4.4.0, 4.4.0-RC1, 4.4.0-RC2, 4.4.0-beta1, 4.4.1, 4.4.10, 4.4.11, 4.4.12, 4.4.13, 4.4.14, 4.4.15, 4.4.16, 4.4.17, 4.4.18, 4.4.19, 4.4.2, 4.4.20, 4.4.21, 4.4.22, 4.4.23, 4.4.24, 4.4.25, 4.4.26, 4.4.27, 4.4.28, 4.4.29, 4.4.3, 4.4.30, 4.4.31, 4.4.32, 4.4.33, 4.4.34, 4.4.35, 4.4.36, 4.4.37, 4.4.38, 4.4.39, 4.4.4, 4.4.40, 4.4.41, 4.4.42, 4.4.43, 4.4.44, 4.4.45, 4.4.46, 4.4.47, 4.4.48, 4.4.49, 4.4.5, 4.4.50, 4.4.51, 4.4.52, 4.4.53, 4.4.54, 4.4.55, 4.4.6, 4.4.7, 4.4.8, 4.4.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "4.0.0"
},
{
"fixed": "4.4.56"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"4.0.0",
"4.0.1",
"4.0.2",
"4.0.3",
"4.0.4",
"4.1.0",
"4.1.0-RC1",
"4.1.0-beta1",
"4.1.1",
"4.1.2",
"4.1.3",
"4.2.0",
"4.2.0-RC1",
"4.2.0-beta1",
"4.2.1",
"4.2.2",
"4.2.3",
"4.2.4",
"4.2.5",
"4.3.0",
"4.3.0-RC1",
"4.3.1",
"4.3.10",
"4.3.11",
"4.3.2",
"4.3.3",
"4.3.4",
"4.3.5",
"4.3.6",
"4.3.7",
"4.3.8",
"4.3.9",
"4.4.0",
"4.4.0-RC1",
"4.4.0-RC2",
"4.4.0-beta1",
"4.4.1",
"4.4.10",
"4.4.11",
"4.4.12",
"4.4.13",
"4.4.14",
"4.4.15",
"4.4.16",
"4.4.17",
"4.4.18",
"4.4.19",
"4.4.2",
"4.4.20",
"4.4.21",
"4.4.22",
"4.4.23",
"4.4.24",
"4.4.25",
"4.4.26",
"4.4.27",
"4.4.28",
"4.4.29",
"4.4.3",
"4.4.30",
"4.4.31",
"4.4.32",
"4.4.33",
"4.4.34",
"4.4.35",
"4.4.36",
"4.4.37",
"4.4.38",
"4.4.39",
"4.4.4",
"4.4.40",
"4.4.41",
"4.4.42",
"4.4.43",
"4.4.44",
"4.4.45",
"4.4.46",
"4.4.47",
"4.4.48",
"4.4.49",
"4.4.5",
"4.4.50",
"4.4.51",
"4.4.52",
"4.4.53",
"4.4.54",
"4.4.55",
"4.4.6",
"4.4.7",
"4.4.8",
"4.4.9"
]
}From 4.0.0 before 4.4.56
Fixed in 4.4.56
34 explicitly affected versions
4.4.22, 4.4.23, 4.4.24, 4.4.25, 4.4.26, 4.4.27, 4.4.28, 4.4.29, 4.4.30, 4.4.31, 4.4.32, 4.4.33, 4.4.34, 4.4.35, 4.4.36, 4.4.37, 4.4.38, 4.4.39, 4.4.40, 4.4.41, 4.4.42, 4.4.43, 4.4.44, 4.4.45, 4.4.46, 4.4.47, 4.4.48, 4.4.49, 4.4.50, 4.4.51, 4.4.52, 4.4.53, 4.4.54, 4.4.55
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "4.0.0"
},
{
"fixed": "4.4.56"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"4.4.22",
"4.4.23",
"4.4.24",
"4.4.25",
"4.4.26",
"4.4.27",
"4.4.28",
"4.4.29",
"4.4.30",
"4.4.31",
"4.4.32",
"4.4.33",
"4.4.34",
"4.4.35",
"4.4.36",
"4.4.37",
"4.4.38",
"4.4.39",
"4.4.40",
"4.4.41",
"4.4.42",
"4.4.43",
"4.4.44",
"4.4.45",
"4.4.46",
"4.4.47",
"4.4.48",
"4.4.49",
"4.4.50",
"4.4.51",
"4.4.52",
"4.4.53",
"4.4.54",
"4.4.55"
]
}From 4.5.0 before 4.9.18
Fixed in 4.9.18
60 explicitly affected versions
4.5.13, 4.5.14, 4.6.0, 4.6.1, 4.6.10, 4.6.11, 4.6.12, 4.6.13, 4.6.14, 4.6.2, 4.6.3, 4.6.4, 4.6.5, 4.6.6, 4.6.7, 4.6.8, 4.6.9, 4.7.0, 4.7.0-RC1, 4.7.0-RC2, 4.7.0-RC3, 4.7.0-RC4, 4.7.1, 4.7.2, 4.7.3, 4.7.4, 4.7.5, 4.7.6, 4.7.7, 4.8.0, 4.8.0-RC1, 4.8.0-RC2, 4.8.1, 4.8.2, 4.8.3, 4.8.4, 4.8.5, 4.8.6, 4.8.7, 4.8.8, 4.9.0, 4.9.0-RC1, 4.9.0-RC2, 4.9.1, 4.9.10, 4.9.11, 4.9.12, 4.9.13, 4.9.14, 4.9.15, 4.9.16, 4.9.17, 4.9.2, 4.9.3, 4.9.4, 4.9.5, 4.9.6, 4.9.7, 4.9.8, 4.9.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "4.5.0"
},
{
"fixed": "4.9.18"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"4.5.13",
"4.5.14",
"4.6.0",
"4.6.1",
"4.6.10",
"4.6.11",
"4.6.12",
"4.6.13",
"4.6.14",
"4.6.2",
"4.6.3",
"4.6.4",
"4.6.5",
"4.6.6",
"4.6.7",
"4.6.8",
"4.6.9",
"4.7.0",
"4.7.0-RC1",
"4.7.0-RC2",
"4.7.0-RC3",
"4.7.0-RC4",
"4.7.1",
"4.7.2",
"4.7.3",
"4.7.4",
"4.7.5",
"4.7.6",
"4.7.7",
"4.8.0",
"4.8.0-RC1",
"4.8.0-RC2",
"4.8.1",
"4.8.2",
"4.8.3",
"4.8.4",
"4.8.5",
"4.8.6",
"4.8.7",
"4.8.8",
"4.9.0",
"4.9.0-RC1",
"4.9.0-RC2",
"4.9.1",
"4.9.10",
"4.9.11",
"4.9.12",
"4.9.13",
"4.9.14",
"4.9.15",
"4.9.16",
"4.9.17",
"4.9.2",
"4.9.3",
"4.9.4",
"4.9.5",
"4.9.6",
"4.9.7",
"4.9.8",
"4.9.9"
]
}From 4.10.0 before 4.11.7
Fixed in 4.11.7
17 explicitly affected versions
4.10.0, 4.10.1, 4.10.2, 4.10.3, 4.10.4, 4.10.5, 4.10.6, 4.10.7, 4.11.0, 4.11.0-RC1, 4.11.0-RC2, 4.11.1, 4.11.2, 4.11.3, 4.11.4, 4.11.5, 4.11.6
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "4.10.0"
},
{
"fixed": "4.11.7"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"4.10.0",
"4.10.1",
"4.10.2",
"4.10.3",
"4.10.4",
"4.10.5",
"4.10.6",
"4.10.7",
"4.11.0",
"4.11.0-RC1",
"4.11.0-RC2",
"4.11.1",
"4.11.2",
"4.11.3",
"4.11.4",
"4.11.5",
"4.11.6"
]
}From 4.5.0 before 4.9.18
Fixed in 4.9.18
76 explicitly affected versions
4.5.0, 4.5.1, 4.5.10, 4.5.11, 4.5.12, 4.5.13, 4.5.14, 4.5.2, 4.5.3, 4.5.4, 4.5.5, 4.5.6, 4.5.7, 4.5.8, 4.5.9, 4.6.0, 4.6.0-RC1, 4.6.0-RC2, 4.6.0-RC3, 4.6.1, 4.6.10, 4.6.11, 4.6.12, 4.6.13, 4.6.14, 4.6.2, 4.6.3, 4.6.4, 4.6.5, 4.6.6, 4.6.7, 4.6.8, 4.6.9, 4.7.0, 4.7.0-RC1, 4.7.0-RC2, 4.7.0-RC3, 4.7.0-RC4, 4.7.1, 4.7.2, 4.7.3, 4.7.4, 4.7.5, 4.7.6, 4.7.7, 4.8.0, 4.8.0-RC1, 4.8.0-RC2, 4.8.1, 4.8.2, 4.8.3, 4.8.4, 4.8.5, 4.8.6, 4.8.7, 4.8.8, 4.9.0, 4.9.0-RC1, 4.9.0-RC2, 4.9.1, 4.9.10, 4.9.11, 4.9.12, 4.9.13, 4.9.14, 4.9.15, 4.9.16, 4.9.17, 4.9.2, 4.9.3, 4.9.4, 4.9.5, 4.9.6, 4.9.7, 4.9.8, 4.9.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "4.5.0"
},
{
"fixed": "4.9.18"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"4.5.0",
"4.5.1",
"4.5.10",
"4.5.11",
"4.5.12",
"4.5.13",
"4.5.14",
"4.5.2",
"4.5.3",
"4.5.4",
"4.5.5",
"4.5.6",
"4.5.7",
"4.5.8",
"4.5.9",
"4.6.0",
"4.6.0-RC1",
"4.6.0-RC2",
"4.6.0-RC3",
"4.6.1",
"4.6.10",
"4.6.11",
"4.6.12",
"4.6.13",
"4.6.14",
"4.6.2",
"4.6.3",
"4.6.4",
"4.6.5",
"4.6.6",
"4.6.7",
"4.6.8",
"4.6.9",
"4.7.0",
"4.7.0-RC1",
"4.7.0-RC2",
"4.7.0-RC3",
"4.7.0-RC4",
"4.7.1",
"4.7.2",
"4.7.3",
"4.7.4",
"4.7.5",
"4.7.6",
"4.7.7",
"4.8.0",
"4.8.0-RC1",
"4.8.0-RC2",
"4.8.1",
"4.8.2",
"4.8.3",
"4.8.4",
"4.8.5",
"4.8.6",
"4.8.7",
"4.8.8",
"4.9.0",
"4.9.0-RC1",
"4.9.0-RC2",
"4.9.1",
"4.9.10",
"4.9.11",
"4.9.12",
"4.9.13",
"4.9.14",
"4.9.15",
"4.9.16",
"4.9.17",
"4.9.2",
"4.9.3",
"4.9.4",
"4.9.5",
"4.9.6",
"4.9.7",
"4.9.8",
"4.9.9"
]
}From 4.10.0 before 4.11.7
Fixed in 4.11.7
17 explicitly affected versions
4.10.0, 4.10.1, 4.10.2, 4.10.3, 4.10.4, 4.10.5, 4.10.6, 4.10.7, 4.11.0, 4.11.0-RC1, 4.11.0-RC2, 4.11.1, 4.11.2, 4.11.3, 4.11.4, 4.11.5, 4.11.6
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "4.10.0"
},
{
"fixed": "4.11.7"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"4.10.0",
"4.10.1",
"4.10.2",
"4.10.3",
"4.10.4",
"4.10.5",
"4.10.6",
"4.10.7",
"4.11.0",
"4.11.0-RC1",
"4.11.0-RC2",
"4.11.1",
"4.11.2",
"4.11.3",
"4.11.4",
"4.11.5",
"4.11.6"
]
}References
- https://github.com/contao/contao/security/advisories/GHSA-hr3h-x6gq-rqcp
- https://nvd.nist.gov/vuln/detail/CVE-2021-35955
- https://contao.org/en/news/contao-4-9-16-and-4-11-5-are-available.html
- https://contao.org/en/security-advisories/cross-site-scripting-via-html-attributes-in-the-back-end.html
- https://github.com/FriendsOfPHP/security-advisories/blob/master/contao/contao/CVE-2021-35955.yaml
- https://github.com/FriendsOfPHP/security-advisories/blob/master/contao/core-bundle/CVE-2021-35955.yaml
- https://github.com/contao/contao