Highlights
Denial of Service: 64 prior fixes. Scrutinize any change in this area.
upb: most-fixed (11 issues). Treat as high-risk during review.
23 high-severity fixes in this history; regressions here are high-impact.
Recurring patterns
The bug types that recur here, drawn from past fixes, not open vulnerabilities.
Denial of Service: Bypasses in recursion depth checks during nested group or Any message conversions consistently lead to remote stack-exhaustion crashes. In particular, binary-to-JSON and text-format deserializers have repeatedly lacked proper recursion limits for certain message types.
Use After Free: Deserialization pathways in C/C++ Python extensions have frequently introduced lifetime mismatches and temporary reference-counting issues (such as missing PyBuffer_Release or premature collection of aliased UTF-8 strings), permitting arbitrary memory corruption or exploitation.
Integer Overflow: Missing checks on field counts and buffer size allocation parameters (e.g. upb_Arena_Malloc) near maximum bounds (SIZE_MAX) lead to undersized memory allocations, resulting in subsequent heap-based buffer overflows or memory corruption.