silverstripe/framework code execution vulnerability
The advisory, in context
There is a vulnerability whereby arbitrary global functions may be executed if malicious user input is passed through to in the second argument of ViewableData::renderWith. This argument resolves associative arrays as template placeholders. This exploit requires that user code has been written which makes use of the second argument in renderWith and where user input is passed directly as a value in an associative array without sanitisation such as Convert::raw2xml().
ViewableData::customise is not vulnerable.
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.3-rc1 before 4.0.4
Fixed in 4.0.4
1 explicitly affected versions
4.0.3
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "4.0.3-rc1"
},
{
"fixed": "4.0.4"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"4.0.3"
]
}From 4.1.0-rc1 before 4.1.1
Fixed in 4.1.1
3 explicitly affected versions
4.1.0, 4.1.0-rc1, 4.1.0-rc2
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "4.1.0-rc1"
},
{
"fixed": "4.1.1"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"4.1.0",
"4.1.0-rc1",
"4.1.0-rc2"
]
}References
- https://github.com/silverstripe/silverstripe-framework/commit/6f50728b185e62c0087a58b295a015cb13276911
- https://github.com/FriendsOfPHP/security-advisories/blob/master/silverstripe/framework/SS-2018-006-1.yaml
- https://github.com/silverstripe/silverstripe-framework
- https://www.silverstripe.org/download/security-releases/ss-2018-006