Symfony Cryptographic Vulnerability
The advisory, in context
The nextBytes function in the SecureRandom class in Symfony before 2.3.37, 2.6.x before 2.6.13, and 2.7.x before 2.7.9 does not properly generate random numbers when used with PHP 5.x without the paragonie/random_compat library and the openssl_random_pseudo_bytes function fails, which makes it easier for attackers to defeat cryptographic protection mechanisms via unspecified vectors.
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 2.4.0 before 2.6.13
Fixed in 2.6.13
42 explicitly affected versions
v2.4.0, v2.4.1, v2.4.10, v2.4.2, v2.4.3, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.4.9, v2.5.0, v2.5.0-BETA1, v2.5.0-BETA2, v2.5.0-RC1, v2.5.1, v2.5.10, v2.5.11, v2.5.12, v2.5.2, v2.5.3, v2.5.4, v2.5.5, v2.5.6, v2.5.7, v2.5.8, v2.5.9, v2.6.0, v2.6.0-BETA1, v2.6.0-BETA2, v2.6.1, v2.6.10, v2.6.11, v2.6.12, v2.6.2, v2.6.3, v2.6.4, v2.6.5, v2.6.6, v2.6.7, v2.6.8, v2.6.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "2.4.0"
},
{
"fixed": "2.6.13"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v2.4.0",
"v2.4.1",
"v2.4.10",
"v2.4.2",
"v2.4.3",
"v2.4.4",
"v2.4.5",
"v2.4.6",
"v2.4.7",
"v2.4.8",
"v2.4.9",
"v2.5.0",
"v2.5.0-BETA1",
"v2.5.0-BETA2",
"v2.5.0-RC1",
"v2.5.1",
"v2.5.10",
"v2.5.11",
"v2.5.12",
"v2.5.2",
"v2.5.3",
"v2.5.4",
"v2.5.5",
"v2.5.6",
"v2.5.7",
"v2.5.8",
"v2.5.9",
"v2.6.0",
"v2.6.0-BETA1",
"v2.6.0-BETA2",
"v2.6.1",
"v2.6.10",
"v2.6.11",
"v2.6.12",
"v2.6.2",
"v2.6.3",
"v2.6.4",
"v2.6.5",
"v2.6.6",
"v2.6.7",
"v2.6.8",
"v2.6.9"
]
}From 2.7.0 before 2.7.9
Fixed in 2.7.9
9 explicitly affected versions
v2.7.0, v2.7.1, v2.7.2, v2.7.3, v2.7.4, v2.7.5, v2.7.6, v2.7.7, v2.7.8
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "2.7.0"
},
{
"fixed": "2.7.9"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v2.7.0",
"v2.7.1",
"v2.7.2",
"v2.7.3",
"v2.7.4",
"v2.7.5",
"v2.7.6",
"v2.7.7",
"v2.7.8"
]
}From 2.3.0 before 2.3.37
Fixed in 2.3.37
37 explicitly affected versions
v2.3.0, v2.3.1, v2.3.10, v2.3.11, v2.3.12, v2.3.13, v2.3.14, v2.3.15, v2.3.16, v2.3.17, v2.3.18, v2.3.19, v2.3.2, v2.3.20, v2.3.21, v2.3.22, v2.3.23, v2.3.24, v2.3.25, v2.3.26, v2.3.27, v2.3.28, v2.3.29, v2.3.3, v2.3.30, v2.3.31, v2.3.32, v2.3.33, v2.3.34, v2.3.35, v2.3.36, v2.3.4, v2.3.5, v2.3.6, v2.3.7, v2.3.8, v2.3.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "2.3.0"
},
{
"fixed": "2.3.37"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v2.3.0",
"v2.3.1",
"v2.3.10",
"v2.3.11",
"v2.3.12",
"v2.3.13",
"v2.3.14",
"v2.3.15",
"v2.3.16",
"v2.3.17",
"v2.3.18",
"v2.3.19",
"v2.3.2",
"v2.3.20",
"v2.3.21",
"v2.3.22",
"v2.3.23",
"v2.3.24",
"v2.3.25",
"v2.3.26",
"v2.3.27",
"v2.3.28",
"v2.3.29",
"v2.3.3",
"v2.3.30",
"v2.3.31",
"v2.3.32",
"v2.3.33",
"v2.3.34",
"v2.3.35",
"v2.3.36",
"v2.3.4",
"v2.3.5",
"v2.3.6",
"v2.3.7",
"v2.3.8",
"v2.3.9"
]
}From 2.4.0 before 2.6.13
Fixed in 2.6.13
42 explicitly affected versions
v2.4.0, v2.4.1, v2.4.10, v2.4.2, v2.4.3, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.4.9, v2.5.0, v2.5.0-BETA1, v2.5.0-BETA2, v2.5.0-RC1, v2.5.1, v2.5.10, v2.5.11, v2.5.12, v2.5.2, v2.5.3, v2.5.4, v2.5.5, v2.5.6, v2.5.7, v2.5.8, v2.5.9, v2.6.0, v2.6.0-BETA1, v2.6.0-BETA2, v2.6.1, v2.6.10, v2.6.11, v2.6.12, v2.6.2, v2.6.3, v2.6.4, v2.6.5, v2.6.6, v2.6.7, v2.6.8, v2.6.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "2.4.0"
},
{
"fixed": "2.6.13"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v2.4.0",
"v2.4.1",
"v2.4.10",
"v2.4.2",
"v2.4.3",
"v2.4.4",
"v2.4.5",
"v2.4.6",
"v2.4.7",
"v2.4.8",
"v2.4.9",
"v2.5.0",
"v2.5.0-BETA1",
"v2.5.0-BETA2",
"v2.5.0-RC1",
"v2.5.1",
"v2.5.10",
"v2.5.11",
"v2.5.12",
"v2.5.2",
"v2.5.3",
"v2.5.4",
"v2.5.5",
"v2.5.6",
"v2.5.7",
"v2.5.8",
"v2.5.9",
"v2.6.0",
"v2.6.0-BETA1",
"v2.6.0-BETA2",
"v2.6.1",
"v2.6.10",
"v2.6.11",
"v2.6.12",
"v2.6.2",
"v2.6.3",
"v2.6.4",
"v2.6.5",
"v2.6.6",
"v2.6.7",
"v2.6.8",
"v2.6.9"
]
}From 2.7.0 before 2.7.9
Fixed in 2.7.9
9 explicitly affected versions
v2.7.0, v2.7.1, v2.7.2, v2.7.3, v2.7.4, v2.7.5, v2.7.6, v2.7.7, v2.7.8
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "2.7.0"
},
{
"fixed": "2.7.9"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v2.7.0",
"v2.7.1",
"v2.7.2",
"v2.7.3",
"v2.7.4",
"v2.7.5",
"v2.7.6",
"v2.7.7",
"v2.7.8"
]
}From 2.3.0 before 2.3.37
Fixed in 2.3.37
37 explicitly affected versions
v2.3.0, v2.3.1, v2.3.10, v2.3.11, v2.3.12, v2.3.13, v2.3.14, v2.3.15, v2.3.16, v2.3.17, v2.3.18, v2.3.19, v2.3.2, v2.3.20, v2.3.21, v2.3.22, v2.3.23, v2.3.24, v2.3.25, v2.3.26, v2.3.27, v2.3.28, v2.3.29, v2.3.3, v2.3.30, v2.3.31, v2.3.32, v2.3.33, v2.3.34, v2.3.35, v2.3.36, v2.3.4, v2.3.5, v2.3.6, v2.3.7, v2.3.8, v2.3.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "2.3.0"
},
{
"fixed": "2.3.37"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v2.3.0",
"v2.3.1",
"v2.3.10",
"v2.3.11",
"v2.3.12",
"v2.3.13",
"v2.3.14",
"v2.3.15",
"v2.3.16",
"v2.3.17",
"v2.3.18",
"v2.3.19",
"v2.3.2",
"v2.3.20",
"v2.3.21",
"v2.3.22",
"v2.3.23",
"v2.3.24",
"v2.3.25",
"v2.3.26",
"v2.3.27",
"v2.3.28",
"v2.3.29",
"v2.3.3",
"v2.3.30",
"v2.3.31",
"v2.3.32",
"v2.3.33",
"v2.3.34",
"v2.3.35",
"v2.3.36",
"v2.3.4",
"v2.3.5",
"v2.3.6",
"v2.3.7",
"v2.3.8",
"v2.3.9"
]
}From 2.4.0 before 2.6.13
Fixed in 2.6.13
42 explicitly affected versions
v2.4.0, v2.4.1, v2.4.10, v2.4.2, v2.4.3, v2.4.4, v2.4.5, v2.4.6, v2.4.7, v2.4.8, v2.4.9, v2.5.0, v2.5.0-BETA1, v2.5.0-BETA2, v2.5.0-RC1, v2.5.1, v2.5.10, v2.5.11, v2.5.12, v2.5.2, v2.5.3, v2.5.4, v2.5.5, v2.5.6, v2.5.7, v2.5.8, v2.5.9, v2.6.0, v2.6.0-BETA1, v2.6.0-BETA2, v2.6.1, v2.6.10, v2.6.11, v2.6.12, v2.6.2, v2.6.3, v2.6.4, v2.6.5, v2.6.6, v2.6.7, v2.6.8, v2.6.9
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "2.4.0"
},
{
"fixed": "2.6.13"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v2.4.0",
"v2.4.1",
"v2.4.10",
"v2.4.2",
"v2.4.3",
"v2.4.4",
"v2.4.5",
"v2.4.6",
"v2.4.7",
"v2.4.8",
"v2.4.9",
"v2.5.0",
"v2.5.0-BETA1",
"v2.5.0-BETA2",
"v2.5.0-RC1",
"v2.5.1",
"v2.5.10",
"v2.5.11",
"v2.5.12",
"v2.5.2",
"v2.5.3",
"v2.5.4",
"v2.5.5",
"v2.5.6",
"v2.5.7",
"v2.5.8",
"v2.5.9",
"v2.6.0",
"v2.6.0-BETA1",
"v2.6.0-BETA2",
"v2.6.1",
"v2.6.10",
"v2.6.11",
"v2.6.12",
"v2.6.2",
"v2.6.3",
"v2.6.4",
"v2.6.5",
"v2.6.6",
"v2.6.7",
"v2.6.8",
"v2.6.9"
]
}From 2.7.0 before 2.7.9
Fixed in 2.7.9
9 explicitly affected versions
v2.7.0, v2.7.1, v2.7.2, v2.7.3, v2.7.4, v2.7.5, v2.7.6, v2.7.7, v2.7.8
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "2.7.0"
},
{
"fixed": "2.7.9"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"v2.7.0",
"v2.7.1",
"v2.7.2",
"v2.7.3",
"v2.7.4",
"v2.7.5",
"v2.7.6",
"v2.7.7",
"v2.7.8"
]
}References
- https://nvd.nist.gov/vuln/detail/CVE-2016-1902
- https://github.com/symfony/symfony/pull/17359
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/security-core/CVE-2016-1902.yaml
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/security/CVE-2016-1902.yaml
- https://github.com/FriendsOfPHP/security-advisories/blob/master/symfony/symfony/CVE-2016-1902.yaml
- https://symfony.com/cve-2016-1902
- https://www.landaire.net/blog/cve-2016-1902-symfony-securerandom
- http://symfony.com/blog/cve-2016-1902-securerandom-s-fallback-not-secure-when-openssl-fails
- http://www.debian.org/security/2016/dsa-3588