parse_value recursively calls parse_array/parse_object, which recursively parse their elements without tracking a depth limit. Nested metadata can therefore consume call stack proportional to input nesting rather than returning a bounded parse error. The compiler uses this parser for the std manifest, so malformed or extreme input should remain an ordinary diagnostic.
No stack-overflow reproducer was run in this audit.
Source evidence at the head of #520:
Acceptance:
Related: #351 addresses string decoding, not recursion/resource limits.
Audit status: identified by static source inspection; the scenarios above have not been executed during this audit. The permalink fixes the reviewed revision; this report does not claim the defect was introduced by #520.
parse_valuerecursively callsparse_array/parse_object, which recursively parse their elements without tracking a depth limit. Nested metadata can therefore consume call stack proportional to input nesting rather than returning a bounded parse error. The compiler uses this parser for the std manifest, so malformed or extreme input should remain an ordinary diagnostic.No stack-overflow reproducer was run in this audit.
Source evidence at the head of #520:
fn parse_valuefn parse_arrayfn parse_objectlet manifest = utils::json::parseAcceptance:
Related: #351 addresses string decoding, not recursion/resource limits.
Audit status: identified by static source inspection; the scenarios above have not been executed during this audit. The permalink fixes the reviewed revision; this report does not claim the defect was introduced by #520.