Silverstripe CMS malicious file upload enables script execution
The advisory, in context
Silverstripe CMS through 4.5 can be susceptible to script execution from malicious upload contents under allowed file extensions (for example HTML code in a TXT file). When these files are stored as protected or draft files, the MIME detection can cause browsers to execute the file contents. Uploads stored as protected or draft files are allowed by default for authorised users only, but can also be enabled through custom logic as well as modules such as silverstripe/userforms. Sites using the previously optional silverstripe/mimevalidator module can configure MIME whitelists rather than extension whitelists, and hence prevent this issue. Sites on the Common Web Platform (CWP) use this module by default, and are not affected.
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.
Earlier releases through 4.5.0 (inclusive)
No fix recorded for this interval.
226 explicitly affected versions
2.4.10, 2.4.11, 2.4.12, 2.4.13, 2.4.9, 2.5.0, 3.0.10, 3.0.10-rc1, 3.0.11, 3.0.11-rc1, 3.0.12, 3.0.13, 3.0.14, 3.0.2.1, 3.0.3, 3.0.3-rc1, 3.0.3-rc2, 3.0.4, 3.0.5, 3.0.6, 3.0.6-rc1, 3.0.6-rc2, 3.0.7, 3.0.7-rc1, 3.0.8, 3.0.9, 3.0.9-rc1, 3.1.0, 3.1.0-beta1, 3.1.0-beta2, 3.1.0-beta3, 3.1.0-rc1, 3.1.0-rc2, 3.1.0-rc3, 3.1.1, 3.1.10, 3.1.10-rc1, 3.1.10-rc2, 3.1.11, 3.1.11-rc1, 3.1.12, 3.1.13, 3.1.13-rc1, 3.1.14, 3.1.14-rc1, 3.1.15, 3.1.16, 3.1.16-rc1, 3.1.17, 3.1.17-rc1, 3.1.17-rc2, 3.1.18, 3.1.18-rc1, 3.1.18-rc2, 3.1.19, 3.1.19-rc1, 3.1.2, 3.1.2-rc1, 3.1.20, 3.1.20-rc1, 3.1.20-rc2, 3.1.21, 3.1.3, 3.1.3-rc1, 3.1.3-rc2, 3.1.4, 3.1.4-rc1, 3.1.5, 3.1.5-rc1, 3.1.6, 3.1.6-rc1, 3.1.6-rc2, 3.1.6-rc3, 3.1.7, 3.1.7-rc1, 3.1.8, 3.1.9, 3.1.9-rc1, 3.2.0, 3.2.0-beta1, 3.2.0-beta2, 3.2.0-rc1, 3.2.0-rc2, 3.2.1, 3.2.1-rc1, 3.2.1-rc2, 3.2.2, 3.2.2-rc1, 3.2.2-rc2, 3.2.3, 3.2.3-rc1, 3.2.3-rc2, 3.2.4, 3.2.4-rc1, 3.2.5, 3.2.5-rc1, 3.2.5-rc2, 3.2.6, 3.3.0, 3.3.0-beta1, 3.3.0-rc1, 3.3.0-rc2, 3.3.0-rc3, 3.3.1, 3.3.1-rc1, 3.3.1-rc2, 3.3.2, 3.3.2-rc1, 3.3.3, 3.3.3-rc1, 3.3.3-rc2, 3.3.4, 3.4.0, 3.4.0-rc1, 3.4.1, 3.4.1-rc1, 3.4.1-rc2, 3.4.2, 3.4.3, 3.4.3-rc1, 3.4.4, 3.4.4-rc1, 3.4.5, 3.4.5-rc1, 3.4.6, 3.4.6-rc1, 3.4.6-rc2, 3.5.0, 3.5.0-rc1, 3.5.0-rc2, 3.5.0-rc3, 3.5.1, 3.5.1-rc1, 3.5.1-rc2, 3.5.2, 3.5.2-rc1, 3.5.3, 3.5.3-rc1, 3.5.4, 3.5.4-rc1, 3.5.5, 3.5.5-beta1, 3.5.5-beta2, 3.5.6, 3.5.6-rc1, 3.5.7, 3.5.8, 3.5.8-rc1, 3.6.0, 3.6.0-beta1, 3.6.0-beta2, 3.6.0-rc1, 3.6.1, 3.6.1-alpha1, 3.6.1-alpha2, 3.6.2, 3.6.2-beta1, 3.6.2-beta2, 3.6.3, 3.6.3-rc2, 3.6.4, 3.6.5, 3.6.6, 3.6.6-rc1, 3.6.7, 3.7.0, 3.7.1, 3.7.1-rc1, 3.7.2, 3.7.3, 4.0.0, 4.0.0-alpha1, 4.0.0-alpha2, 4.0.0-alpha3, 4.0.0-alpha4, 4.0.0-alpha5, 4.0.0-alpha6, 4.0.0-alpha7, 4.0.0-beta1, 4.0.0-beta2, 4.0.0-beta3, 4.0.0-beta4, 4.0.0-rc1, 4.0.0-rc2, 4.0.0-rc3, 4.0.1, 4.0.1-rc1, 4.0.2, 4.0.3, 4.0.4, 4.0.5, 4.0.6, 4.0.7, 4.1.0, 4.1.0-rc1, 4.1.0-rc2, 4.1.1, 4.1.2, 4.1.3, 4.1.4, 4.1.5, 4.2.0, 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.2, 4.3.3, 4.3.4, 4.3.5, 4.4.0, 4.4.0-rc1, 4.4.1, 4.4.2, 4.4.3, 4.4.4, 4.4.5, 4.5.0, 4.5.0-alpha1, 4.5.0-rc1, 4.5.0-rc2
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "4.5.0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.4.10",
"2.4.11",
"2.4.12",
"2.4.13",
"2.4.9",
"2.5.0",
"3.0.10",
"3.0.10-rc1",
"3.0.11",
"3.0.11-rc1",
"3.0.12",
"3.0.13",
"3.0.14",
"3.0.2.1",
"3.0.3",
"3.0.3-rc1",
"3.0.3-rc2",
"3.0.4",
"3.0.5",
"3.0.6",
"3.0.6-rc1",
"3.0.6-rc2",
"3.0.7",
"3.0.7-rc1",
"3.0.8",
"3.0.9",
"3.0.9-rc1",
"3.1.0",
"3.1.0-beta1",
"3.1.0-beta2",
"3.1.0-beta3",
"3.1.0-rc1",
"3.1.0-rc2",
"3.1.0-rc3",
"3.1.1",
"3.1.10",
"3.1.10-rc1",
"3.1.10-rc2",
"3.1.11",
"3.1.11-rc1",
"3.1.12",
"3.1.13",
"3.1.13-rc1",
"3.1.14",
"3.1.14-rc1",
"3.1.15",
"3.1.16",
"3.1.16-rc1",
"3.1.17",
"3.1.17-rc1",
"3.1.17-rc2",
"3.1.18",
"3.1.18-rc1",
"3.1.18-rc2",
"3.1.19",
"3.1.19-rc1",
"3.1.2",
"3.1.2-rc1",
"3.1.20",
"3.1.20-rc1",
"3.1.20-rc2",
"3.1.21",
"3.1.3",
"3.1.3-rc1",
"3.1.3-rc2",
"3.1.4",
"3.1.4-rc1",
"3.1.5",
"3.1.5-rc1",
"3.1.6",
"3.1.6-rc1",
"3.1.6-rc2",
"3.1.6-rc3",
"3.1.7",
"3.1.7-rc1",
"3.1.8",
"3.1.9",
"3.1.9-rc1",
"3.2.0",
"3.2.0-beta1",
"3.2.0-beta2",
"3.2.0-rc1",
"3.2.0-rc2",
"3.2.1",
"3.2.1-rc1",
"3.2.1-rc2",
"3.2.2",
"3.2.2-rc1",
"3.2.2-rc2",
"3.2.3",
"3.2.3-rc1",
"3.2.3-rc2",
"3.2.4",
"3.2.4-rc1",
"3.2.5",
"3.2.5-rc1",
"3.2.5-rc2",
"3.2.6",
"3.3.0",
"3.3.0-beta1",
"3.3.0-rc1",
"3.3.0-rc2",
"3.3.0-rc3",
"3.3.1",
"3.3.1-rc1",
"3.3.1-rc2",
"3.3.2",
"3.3.2-rc1",
"3.3.3",
"3.3.3-rc1",
"3.3.3-rc2",
"3.3.4",
"3.4.0",
"3.4.0-rc1",
"3.4.1",
"3.4.1-rc1",
"3.4.1-rc2",
"3.4.2",
"3.4.3",
"3.4.3-rc1",
"3.4.4",
"3.4.4-rc1",
"3.4.5",
"3.4.5-rc1",
"3.4.6",
"3.4.6-rc1",
"3.4.6-rc2",
"3.5.0",
"3.5.0-rc1",
"3.5.0-rc2",
"3.5.0-rc3",
"3.5.1",
"3.5.1-rc1",
"3.5.1-rc2",
"3.5.2",
"3.5.2-rc1",
"3.5.3",
"3.5.3-rc1",
"3.5.4",
"3.5.4-rc1",
"3.5.5",
"3.5.5-beta1",
"3.5.5-beta2",
"3.5.6",
"3.5.6-rc1",
"3.5.7",
"3.5.8",
"3.5.8-rc1",
"3.6.0",
"3.6.0-beta1",
"3.6.0-beta2",
"3.6.0-rc1",
"3.6.1",
"3.6.1-alpha1",
"3.6.1-alpha2",
"3.6.2",
"3.6.2-beta1",
"3.6.2-beta2",
"3.6.3",
"3.6.3-rc2",
"3.6.4",
"3.6.5",
"3.6.6",
"3.6.6-rc1",
"3.6.7",
"3.7.0",
"3.7.1",
"3.7.1-rc1",
"3.7.2",
"3.7.3",
"4.0.0",
"4.0.0-alpha1",
"4.0.0-alpha2",
"4.0.0-alpha3",
"4.0.0-alpha4",
"4.0.0-alpha5",
"4.0.0-alpha6",
"4.0.0-alpha7",
"4.0.0-beta1",
"4.0.0-beta2",
"4.0.0-beta3",
"4.0.0-beta4",
"4.0.0-rc1",
"4.0.0-rc2",
"4.0.0-rc3",
"4.0.1",
"4.0.1-rc1",
"4.0.2",
"4.0.3",
"4.0.4",
"4.0.5",
"4.0.6",
"4.0.7",
"4.1.0",
"4.1.0-rc1",
"4.1.0-rc2",
"4.1.1",
"4.1.2",
"4.1.3",
"4.1.4",
"4.1.5",
"4.2.0",
"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.2",
"4.3.3",
"4.3.4",
"4.3.5",
"4.4.0",
"4.4.0-rc1",
"4.4.1",
"4.4.2",
"4.4.3",
"4.4.4",
"4.4.5",
"4.5.0",
"4.5.0-alpha1",
"4.5.0-rc1",
"4.5.0-rc2"
]
}