Highlights
Memory Corruption: 7 prior fixes. Scrutinize any change in this area.
io/src/pcd_io.cpp: most-fixed (3 issues). Treat as high-risk during review.
7 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: PCD file reading is highly susceptible to memory corruption and out-of-bounds access. Multiple vulnerabilities were fixed by correcting memory-mapped allocation size calculations, addressing assumptions about variable-width integer serialization, and adjusting header offsets during decompression remapping. Ensuring correct, platform-independent sizing in these paths is critical to prevent remote code execution when reading malformed PCD files.
Integer Overflow: Multiplication of width and height attributes in point cloud metadata can lead to integer overflows during vector resizing and pointer arithmetic. Without explicit casts to std::size_t before memory allocation, attackers could trigger undersized heap allocations leading to subsequent heap-based out-of-bounds writes.
Out-of-bounds Write: The PLY geometry file parser historically utilized unsafe, direct memcpy operations using unvalidated vertex counts and offset calculations. This can lead to arbitrary out-of-bounds heap writes during parsing of malicious 3D models.