flatted is a circular JSON parser. Prior to 3.4.0, flatteds parse() function uses a recursive revive() phase to resolve circular references in deserialized JSON. When given a crafted payload with deeply nested or self-referential $ indices, the recursion depth is unbounded, causing a stack overflow that crashes the Node.js process. This vulnerability is fixed in 3.4.0.
The product does not properly control the amount of recursion that takes place, consuming excessive resources, such as allocated memory or the program stack.