Yii 2: Local file inclusion via view parameter name collision
The advisory, in context
The core view rendering method View::renderPhpFile() calls extract($_params_, EXTR_OVERWRITE) before the require statement that includes the view file. A caller-controlled parameter named _file_ in the $params array overwrites the internal local variable that specifies which file is included — enabling a Local File Inclusion primitive.
Impact
- Local File Inclusion (arbitrary file read via non-PHP files)
- Potential RCE if attacker can write PHP files via a separate primitive
- Information disclosure
Patches
2.0.55
Workarounds
No.
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 2.0.55
Fixed in 2.0.55
79 explicitly affected versions
2.0.0, 2.0.0-alpha, 2.0.0-beta, 2.0.0-rc, 2.0.1, 2.0.10, 2.0.11, 2.0.11.1, 2.0.11.2, 2.0.12, 2.0.12.1, 2.0.12.2, 2.0.13, 2.0.13.1, 2.0.13.2, 2.0.13.3, 2.0.14, 2.0.14.1, 2.0.14.2, 2.0.15, 2.0.15.1, 2.0.16, 2.0.16.1, 2.0.17, 2.0.18, 2.0.19, 2.0.2, 2.0.20, 2.0.21, 2.0.22, 2.0.23, 2.0.24, 2.0.25, 2.0.26, 2.0.27, 2.0.28, 2.0.29, 2.0.3, 2.0.30, 2.0.31, 2.0.32, 2.0.33, 2.0.34, 2.0.35, 2.0.36, 2.0.37, 2.0.38, 2.0.39, 2.0.39.1, 2.0.39.2, 2.0.39.3, 2.0.4, 2.0.40, 2.0.41, 2.0.41.1, 2.0.42, 2.0.42.1, 2.0.43, 2.0.44, 2.0.45, 2.0.46, 2.0.47, 2.0.48, 2.0.48.1, 2.0.49, 2.0.49.1, 2.0.49.2, 2.0.49.3, 2.0.49.4, 2.0.5, 2.0.50, 2.0.51, 2.0.52, 2.0.53, 2.0.54, 2.0.6, 2.0.7, 2.0.8, 2.0.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "2.0.55"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.0.0",
"2.0.0-alpha",
"2.0.0-beta",
"2.0.0-rc",
"2.0.1",
"2.0.10",
"2.0.11",
"2.0.11.1",
"2.0.11.2",
"2.0.12",
"2.0.12.1",
"2.0.12.2",
"2.0.13",
"2.0.13.1",
"2.0.13.2",
"2.0.13.3",
"2.0.14",
"2.0.14.1",
"2.0.14.2",
"2.0.15",
"2.0.15.1",
"2.0.16",
"2.0.16.1",
"2.0.17",
"2.0.18",
"2.0.19",
"2.0.2",
"2.0.20",
"2.0.21",
"2.0.22",
"2.0.23",
"2.0.24",
"2.0.25",
"2.0.26",
"2.0.27",
"2.0.28",
"2.0.29",
"2.0.3",
"2.0.30",
"2.0.31",
"2.0.32",
"2.0.33",
"2.0.34",
"2.0.35",
"2.0.36",
"2.0.37",
"2.0.38",
"2.0.39",
"2.0.39.1",
"2.0.39.2",
"2.0.39.3",
"2.0.4",
"2.0.40",
"2.0.41",
"2.0.41.1",
"2.0.42",
"2.0.42.1",
"2.0.43",
"2.0.44",
"2.0.45",
"2.0.46",
"2.0.47",
"2.0.48",
"2.0.48.1",
"2.0.49",
"2.0.49.1",
"2.0.49.2",
"2.0.49.3",
"2.0.49.4",
"2.0.5",
"2.0.50",
"2.0.51",
"2.0.52",
"2.0.53",
"2.0.54",
"2.0.6",
"2.0.7",
"2.0.8",
"2.0.9"
]
}