Highlights
Memory Corruption: 22 prior fixes. Scrutinize any change in this area.
upb: most-fixed (15 issues). Treat as high-risk during review.
38 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.
Memory Corruption: The upb decoder and mini-table systems are highly susceptible to memory corruption from malformed schemas, unexpected submessage state changes, and incorrect offset tracking. This is evidenced by multiple fixes targeting invalid map layout parsing, unlinked submessage dereferences, and untracked pointer increments.
Integer Overflow: Decoding layouts with extreme field counts or message sizes exceeding limits triggers integer overflows that lead to invalid arena allocations and downstream heap corruption.
Memory Safety: The Python extension's map lookup and deserialization pathways historically suffered from use-after-free bugs caused by incorrect lifetime tracking of temporary Unicode objects instead of keeping direct, safe references to the underlying byte sequences.