GHSA-3wrr-7qpf-2prh
jackson-databind: Deeply nested JsonNode throws StackOverflowError for toString()
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| Maven | com.fasterxml.jackson.core:jackson-databind | >= 2.10.0, < 2.14.0 | 2.14.0 |
Details
As written in the advisory (Markdown source, shown as plain text).
### Impact
Potential Denial-of-Service when attacker sends deeply nested JSON if (and only if) service:
1. Reads deeply nested (1000s of levels) JSON as `JsonNode` (ObjectMapper.readTree())
2. Writes out same (or modifided) node using `JsonNode.toString()`
which can consume significant amount of resources with concurrent relatively small requests (1000 nested arrays is 2kB).
### Patches
Fixed in 2.14.0 via https://github.com/FasterXML/jackson-databind/issues/3447.
### Workarounds
Avoid serializing `JsonNode` using `toString()`: use ObjectMapper.writeValueAsString(node)
References
External links from the advisory. They lead to third-party sites.
- https://github.com/FasterXML/jackson-databind/security/advisories/GHSA-3wrr-7qpf-2prh
- https://nvd.nist.gov/vuln/detail/CVE-2026-50193
- https://github.com/FasterXML/jackson-databind/issues/3447
- https://github.com/FasterXML/jackson-databind/commit/a1fa4ae4ecf5cee16da465985f135f3e81816f8c
- https://github.com/FasterXML/jackson-databind