Symfony allows changing the environment through a query
The advisory, in context
Description
When the register_argc_argv php directive is set to on , and users call any URL with a special crafted query string, they are able to change the environment or debug mode used by the kernel when handling the request.
Resolution
The SymfonyRuntime now ignores the argv values for non-cli SAPIs PHP runtimes
The patch for this issue is available here for branch 5.4.
Credits
We would like to thank Vladimir Dusheyko for reporting the issue and Wouter de Jong for providing the fix.
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 5.3.0 before 5.4.46
Fixed in 5.4.46
27 explicitly affected versions
v5.3.0, v5.3.10, v5.3.11, v5.3.13, v5.3.14, v5.3.2, v5.3.3, v5.3.4, v5.4.0, v5.4.0-BETA1, v5.4.0-BETA2, v5.4.0-RC1, v5.4.1, v5.4.11, v5.4.19, v5.4.21, v5.4.22, v5.4.25, v5.4.26, v5.4.3, v5.4.35, v5.4.39, v5.4.40, v5.4.45, v5.4.5, v5.4.7, v5.4.8
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "5.3.0"
},
{
"fixed": "5.4.46"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v5.3.0",
"v5.3.10",
"v5.3.11",
"v5.3.13",
"v5.3.14",
"v5.3.2",
"v5.3.3",
"v5.3.4",
"v5.4.0",
"v5.4.0-BETA1",
"v5.4.0-BETA2",
"v5.4.0-RC1",
"v5.4.1",
"v5.4.11",
"v5.4.19",
"v5.4.21",
"v5.4.22",
"v5.4.25",
"v5.4.26",
"v5.4.3",
"v5.4.35",
"v5.4.39",
"v5.4.40",
"v5.4.45",
"v5.4.5",
"v5.4.7",
"v5.4.8"
]
}From 6.0.0 before 6.4.14
Fixed in 6.4.14
36 explicitly affected versions
v6.0.0, v6.0.11, v6.0.19, v6.0.3, v6.0.5, v6.0.7, v6.0.8, v6.1.0, v6.1.0-BETA1, v6.1.0-RC1, v6.1.1, v6.1.11, v6.1.3, v6.2.0, v6.2.0-BETA1, v6.2.0-BETA3, v6.2.0-RC1, v6.2.12, v6.2.13, v6.2.5, v6.2.7, v6.2.8, v6.3.0, v6.3.0-BETA1, v6.3.0-RC1, v6.3.1, v6.3.12, v6.3.2, v6.4.0, v6.4.0-BETA1, v6.4.0-RC1, v6.4.12, v6.4.13, v6.4.3, v6.4.7, v6.4.8
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "6.0.0"
},
{
"fixed": "6.4.14"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v6.0.0",
"v6.0.11",
"v6.0.19",
"v6.0.3",
"v6.0.5",
"v6.0.7",
"v6.0.8",
"v6.1.0",
"v6.1.0-BETA1",
"v6.1.0-RC1",
"v6.1.1",
"v6.1.11",
"v6.1.3",
"v6.2.0",
"v6.2.0-BETA1",
"v6.2.0-BETA3",
"v6.2.0-RC1",
"v6.2.12",
"v6.2.13",
"v6.2.5",
"v6.2.7",
"v6.2.8",
"v6.3.0",
"v6.3.0-BETA1",
"v6.3.0-RC1",
"v6.3.1",
"v6.3.12",
"v6.3.2",
"v6.4.0",
"v6.4.0-BETA1",
"v6.4.0-RC1",
"v6.4.12",
"v6.4.13",
"v6.4.3",
"v6.4.7",
"v6.4.8"
]
}From 7.0.0 before 7.1.7
Fixed in 7.1.7
9 explicitly affected versions
v7.0.0, v7.0.3, v7.0.7, v7.0.8, v7.1.0, v7.1.0-BETA1, v7.1.0-RC1, v7.1.1, v7.1.6
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "7.0.0"
},
{
"fixed": "7.1.7"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v7.0.0",
"v7.0.3",
"v7.0.7",
"v7.0.8",
"v7.1.0",
"v7.1.0-BETA1",
"v7.1.0-RC1",
"v7.1.1",
"v7.1.6"
]
}From 5.3.0 before 5.4.46
Fixed in 5.4.46
67 explicitly affected versions
v5.3.0, v5.3.1, v5.3.10, v5.3.11, v5.3.12, v5.3.13, v5.3.14, v5.3.15, v5.3.16, v5.3.2, v5.3.3, v5.3.4, v5.3.5, v5.3.6, v5.3.7, v5.3.8, v5.3.9, v5.4.0, v5.4.0-BETA1, v5.4.0-BETA2, v5.4.0-BETA3, v5.4.0-RC1, v5.4.1, v5.4.10, v5.4.11, v5.4.12, v5.4.13, v5.4.14, v5.4.15, v5.4.16, v5.4.17, v5.4.18, v5.4.19, v5.4.2, v5.4.20, v5.4.21, v5.4.22, v5.4.23, v5.4.24, v5.4.25, v5.4.26, v5.4.27, v5.4.28, v5.4.29, v5.4.3, v5.4.30, v5.4.31, v5.4.32, v5.4.33, v5.4.34, v5.4.35, v5.4.36, v5.4.37, v5.4.38, v5.4.39, v5.4.4, v5.4.40, v5.4.41, v5.4.42, v5.4.43, v5.4.44, v5.4.45, v5.4.5, v5.4.6, v5.4.7, v5.4.8, v5.4.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "5.3.0"
},
{
"fixed": "5.4.46"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v5.3.0",
"v5.3.1",
"v5.3.10",
"v5.3.11",
"v5.3.12",
"v5.3.13",
"v5.3.14",
"v5.3.15",
"v5.3.16",
"v5.3.2",
"v5.3.3",
"v5.3.4",
"v5.3.5",
"v5.3.6",
"v5.3.7",
"v5.3.8",
"v5.3.9",
"v5.4.0",
"v5.4.0-BETA1",
"v5.4.0-BETA2",
"v5.4.0-BETA3",
"v5.4.0-RC1",
"v5.4.1",
"v5.4.10",
"v5.4.11",
"v5.4.12",
"v5.4.13",
"v5.4.14",
"v5.4.15",
"v5.4.16",
"v5.4.17",
"v5.4.18",
"v5.4.19",
"v5.4.2",
"v5.4.20",
"v5.4.21",
"v5.4.22",
"v5.4.23",
"v5.4.24",
"v5.4.25",
"v5.4.26",
"v5.4.27",
"v5.4.28",
"v5.4.29",
"v5.4.3",
"v5.4.30",
"v5.4.31",
"v5.4.32",
"v5.4.33",
"v5.4.34",
"v5.4.35",
"v5.4.36",
"v5.4.37",
"v5.4.38",
"v5.4.39",
"v5.4.4",
"v5.4.40",
"v5.4.41",
"v5.4.42",
"v5.4.43",
"v5.4.44",
"v5.4.45",
"v5.4.5",
"v5.4.6",
"v5.4.7",
"v5.4.8",
"v5.4.9"
]
}From 6.0.0 before 6.4.14
Fixed in 6.4.14
94 explicitly affected versions
v6.0.0, v6.0.1, v6.0.10, v6.0.11, v6.0.12, v6.0.13, v6.0.14, v6.0.15, v6.0.16, v6.0.17, v6.0.18, v6.0.19, v6.0.2, v6.0.20, v6.0.3, v6.0.4, v6.0.5, v6.0.6, v6.0.7, v6.0.8, v6.0.9, v6.1.0, v6.1.0-BETA1, v6.1.0-BETA2, v6.1.0-RC1, v6.1.1, v6.1.10, v6.1.11, v6.1.12, v6.1.2, v6.1.3, v6.1.4, v6.1.5, v6.1.6, v6.1.7, v6.1.8, v6.1.9, v6.2.0, v6.2.0-BETA1, v6.2.0-BETA2, v6.2.0-BETA3, v6.2.0-RC1, v6.2.0-RC2, v6.2.1, v6.2.10, v6.2.11, v6.2.12, v6.2.13, v6.2.14, v6.2.2, v6.2.3, v6.2.4, v6.2.5, v6.2.6, v6.2.7, v6.2.8, v6.2.9, v6.3.0, v6.3.0-BETA1, v6.3.0-BETA2, v6.3.0-BETA3, v6.3.0-RC1, v6.3.0-RC2, v6.3.1, v6.3.10, v6.3.11, v6.3.12, v6.3.2, v6.3.3, v6.3.4, v6.3.5, v6.3.6, v6.3.7, v6.3.8, v6.3.9, v6.4.0, v6.4.0-BETA1, v6.4.0-BETA2, v6.4.0-BETA3, v6.4.0-RC1, v6.4.0-RC2, v6.4.1, v6.4.10, v6.4.11, v6.4.12, v6.4.13, v6.4.2, v6.4.3, v6.4.4, v6.4.5, v6.4.6, v6.4.7, v6.4.8, v6.4.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "6.0.0"
},
{
"fixed": "6.4.14"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v6.0.0",
"v6.0.1",
"v6.0.10",
"v6.0.11",
"v6.0.12",
"v6.0.13",
"v6.0.14",
"v6.0.15",
"v6.0.16",
"v6.0.17",
"v6.0.18",
"v6.0.19",
"v6.0.2",
"v6.0.20",
"v6.0.3",
"v6.0.4",
"v6.0.5",
"v6.0.6",
"v6.0.7",
"v6.0.8",
"v6.0.9",
"v6.1.0",
"v6.1.0-BETA1",
"v6.1.0-BETA2",
"v6.1.0-RC1",
"v6.1.1",
"v6.1.10",
"v6.1.11",
"v6.1.12",
"v6.1.2",
"v6.1.3",
"v6.1.4",
"v6.1.5",
"v6.1.6",
"v6.1.7",
"v6.1.8",
"v6.1.9",
"v6.2.0",
"v6.2.0-BETA1",
"v6.2.0-BETA2",
"v6.2.0-BETA3",
"v6.2.0-RC1",
"v6.2.0-RC2",
"v6.2.1",
"v6.2.10",
"v6.2.11",
"v6.2.12",
"v6.2.13",
"v6.2.14",
"v6.2.2",
"v6.2.3",
"v6.2.4",
"v6.2.5",
"v6.2.6",
"v6.2.7",
"v6.2.8",
"v6.2.9",
"v6.3.0",
"v6.3.0-BETA1",
"v6.3.0-BETA2",
"v6.3.0-BETA3",
"v6.3.0-RC1",
"v6.3.0-RC2",
"v6.3.1",
"v6.3.10",
"v6.3.11",
"v6.3.12",
"v6.3.2",
"v6.3.3",
"v6.3.4",
"v6.3.5",
"v6.3.6",
"v6.3.7",
"v6.3.8",
"v6.3.9",
"v6.4.0",
"v6.4.0-BETA1",
"v6.4.0-BETA2",
"v6.4.0-BETA3",
"v6.4.0-RC1",
"v6.4.0-RC2",
"v6.4.1",
"v6.4.10",
"v6.4.11",
"v6.4.12",
"v6.4.13",
"v6.4.2",
"v6.4.3",
"v6.4.4",
"v6.4.5",
"v6.4.6",
"v6.4.7",
"v6.4.8",
"v6.4.9"
]
}From 7.0.0 before 7.1.7
Fixed in 7.1.7
20 explicitly affected versions
v7.0.0, v7.0.1, v7.0.10, v7.0.2, v7.0.3, v7.0.4, v7.0.5, v7.0.6, v7.0.7, v7.0.8, v7.0.9, v7.1.0, v7.1.0-BETA1, v7.1.0-RC1, v7.1.1, v7.1.2, v7.1.3, v7.1.4, v7.1.5, v7.1.6
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "7.0.0"
},
{
"fixed": "7.1.7"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v7.0.0",
"v7.0.1",
"v7.0.10",
"v7.0.2",
"v7.0.3",
"v7.0.4",
"v7.0.5",
"v7.0.6",
"v7.0.7",
"v7.0.8",
"v7.0.9",
"v7.1.0",
"v7.1.0-BETA1",
"v7.1.0-RC1",
"v7.1.1",
"v7.1.2",
"v7.1.3",
"v7.1.4",
"v7.1.5",
"v7.1.6"
]
}References
- https://github.com/symfony/symfony/security/advisories/GHSA-x8vp-gf4q-mw5j
- https://nvd.nist.gov/vuln/detail/CVE-2024-50340
- https://github.com/symfony/symfony/commit/a77b308c3f179ed7c8a8bc295f82b2d6ee3493fa
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/runtime/CVE-2024-50340.yaml
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/CVE-2024-50340.yaml
- https://github.com/symfony/symfony
- https://symfony.com/cve-2024-50340