Lack of access control on upoaded files
The advisory, in context
SilverStripe through 4.3.3 has incorrect access control for protected files uploaded via Upload::loadIntoFile(). An attacker may be able to guess a filename in silverstripe/assets via the AssetControlExtension.
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 before 3.6.8
Fixed in 3.6.8
164 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-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
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "3.6.8"
}
],
"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-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"
]
}From 3.7.0 before 3.7.4
Fixed in 3.7.4
5 explicitly affected versions
3.7.0, 3.7.1, 3.7.1-rc1, 3.7.2, 3.7.3
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "3.7.0"
},
{
"fixed": "3.7.4"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"3.7.0",
"3.7.1",
"3.7.1-rc1",
"3.7.2",
"3.7.3"
]
}From 4.0.0 before 4.3.6
Fixed in 4.3.6
31 explicitly affected versions
4.0.0, 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
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "4.0.0"
},
{
"fixed": "4.3.6"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"4.0.0",
"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"
]
}From 4.4.0 before 4.4.4
Fixed in 4.4.4
4 explicitly affected versions
4.4.0, 4.4.1, 4.4.2, 4.4.3
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "4.4.0"
},
{
"fixed": "4.4.4"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"4.4.0",
"4.4.1",
"4.4.2",
"4.4.3"
]
}From 1.0.0 before 1.3.5
Fixed in 1.3.5
30 explicitly affected versions
1.0.0, 1.0.1, 1.0.1-rc1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.0.7, 1.1.0, 1.1.0-rc1, 1.1.0-rc2, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.2.0, 1.2.0-beta1, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.3.0, 1.3.0-rc1, 1.3.1, 1.3.2, 1.3.3, 1.3.4
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "1.0.0"
},
{
"fixed": "1.3.5"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.0.0",
"1.0.1",
"1.0.1-rc1",
"1.0.2",
"1.0.3",
"1.0.4",
"1.0.5",
"1.0.6",
"1.0.7",
"1.1.0",
"1.1.0-rc1",
"1.1.0-rc2",
"1.1.1",
"1.1.2",
"1.1.3",
"1.1.4",
"1.1.5",
"1.2.0",
"1.2.0-beta1",
"1.2.1",
"1.2.2",
"1.2.3",
"1.2.4",
"1.2.5",
"1.3.0",
"1.3.0-rc1",
"1.3.1",
"1.3.2",
"1.3.3",
"1.3.4"
]
}From 1.4.0 before 1.4.4
Fixed in 1.4.4
4 explicitly affected versions
1.4.0, 1.4.1, 1.4.2, 1.4.3
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "1.4.0"
},
{
"fixed": "1.4.4"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.4.0",
"1.4.1",
"1.4.2",
"1.4.3"
]
}References
- https://nvd.nist.gov/vuln/detail/CVE-2019-12245
- https://forum.silverstripe.org/c/releases
- https://github.com/FriendsOfPHP/security-advisories/blob/master/silverstripe/assets/CVE-2019-12245.yaml
- https://www.silverstripe.org/download/security-releases
- https://www.silverstripe.org/download/security-releases/CVE-2019-12245
- https://www.silverstripe.org/download/security-releases/cve-2019-12245