Highlights
Denial of Service: 5 prior fixes. Scrutinize any change in this area.
common/unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java: most-fixed (2 issues). Treat as high-risk during review.
1 high-severity fix 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: Unbounded recursion and retry loops during page allocation in the Tungsten memory allocator can cause resource exhaustion when encountering OutOfMemoryError. Developers must ensure allocation retries are strictly bounded.
Out-of-bounds Read: Custom unsafe memory copy operations fail to properly bound reads when processing malformed or truncated trailing multi-byte UTF-8 sequences, leading to memory disclosure or crashes.
Denial of Service: In-memory data structures like ArrayBuffer crash the JVM on skewed join keys. Memory-heavy operations must use spillable structures like ExternalAppendOnlyUnsafeRowArray.