DDOS attack on graphql endpoints
The advisory, in context
An attacker could use a specially crafted graphql query to execute a Distributed Denial of Service attack (DDOS attack) against a website. This mostly affects websites with publicly exposed and particularly large/complex graphql schemas.
If your Silverstripe CMS project does not expose a public facing graphql schema, a user account is required to trigger the DDOS attack. If your site is hosted behind a content delivery network (CDN), such as Imperva or CloudFlare, this will likely further mitigate the risk.
Upgrade to silverstripe/graphql 4.2.3 or 4.1.2 or above to remedy the vulnerability.
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.1.1 before 4.1.2
Fixed in 4.1.2
1 explicitly affected versions
4.1.1
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "4.1.1"
},
{
"fixed": "4.1.2"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"4.1.1"
]
}From 4.2.2 before 4.2.3
Fixed in 4.2.3
1 explicitly affected versions
4.2.2
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "4.2.2"
},
{
"fixed": "4.2.3"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"4.2.2"
]
}References
- https://github.com/silverstripe/silverstripe-graphql/security/advisories/GHSA-67g8-c724-8mp3
- https://nvd.nist.gov/vuln/detail/CVE-2023-28104
- https://github.com/silverstripe/silverstripe-graphql/pull/526
- https://github.com/FriendsOfPHP/security-advisories/blob/master/silverstripe/graphql/CVE-2023-28104.yaml
- https://github.com/silverstripe/silverstripe-graphql
- https://github.com/silverstripe/silverstripe-graphql/releases/tag/4.1.2
- https://github.com/silverstripe/silverstripe-graphql/releases/tag/4.2.3
- https://www.silverstripe.org/download/security-releases/CVE-2023-28104