GHSA-g56x-7j6w-g8r8
Grackle has StackOverflowError in GraphQL query processing
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| Maven | org.typelevel:grackle-core_2.13 | < 0.18.0 | 0.18.0 |
| Maven | org.typelevel:grackle-core_3 | < 0.18.0 | 0.18.0 |
| Maven | org.typelevel:grackle-core_sjs1_2.13 | < 0.18.0 | 0.18.0 |
| Maven | org.typelevel:grackle-core_sjs1_3 | < 0.18.0 | 0.18.0 |
| Maven | org.typelevel:grackle-core_native0.4_2.13 | < 0.18.0 | 0.18.0 |
| Maven | org.typelevel:grackle-core_native0.4_3 | < 0.18.0 | 0.18.0 |
| Maven | edu.gemini:gsp-graphql-core_2.13 | <= 0.14.0 | no fix listed |
| Maven | edu.gemini:gsp-graphql-core_3 | <= 0.14.0 | no fix listed |
| Maven | edu.gemini:gsp-graphql-core_sjs1_2.13 | <= 0.14.0 | no fix listed |
| Maven | edu.gemini:gsp-graphql-core_sjs1_3 | <= 0.14.0 | no fix listed |
| Maven | edu.gemini:gsp-graphql-core_native0.4_2.13 | <= 0.14.0 | no fix listed |
| Maven | edu.gemini:gsp-graphql-core_native0.4_3 | <= 0.14.0 | no fix listed |
Details
As written in the advisory (Markdown source, shown as plain text).
### Impact
Prior to this fix, the GraphQL query parsing was vulnerable to `StackOverflowError`s. The possibility of small queries resulting in stack overflow is a potential denial of service vulnerability.
This potentially affects all applications using Grackle which have untrusted users.
> [!CAUTION]
> **No specific knowledge of an application's GraphQL schema would be required to construct a pathological query.**
### Patches
The stack overflow issues have been resolved in the v0.18.0 release of Grackle.
### Workarounds
Users could interpose a sanitizing layer in between untrusted input and Grackle query processing.
References
External links from the advisory. They lead to third-party sites.
- https://github.com/typelevel/grackle/security/advisories/GHSA-g56x-7j6w-g8r8
- https://nvd.nist.gov/vuln/detail/CVE-2023-50730
- https://github.com/typelevel/grackle/commit/56e244b91659cf385df590fc6c46695b6f36cbfd
- https://github.com/typelevel/grackle
- https://github.com/typelevel/grackle/releases/tag/v0.18.0