rapidcsv: Integer overflow in iterator arithmetic causes out-of-bounds access
What fixes it
No source in this snapshot names a fixed version. The vendor advisories under References are the place to check.
Description
rapidcsv is a C++ CSV parser library. Prior to 8.99, RemoveColumn, InsertColumn, RemoveRow, InsertRow, and GetColumnNames converted size_t indexes to int before adding them to std::vector iterators. On 64-bit systems, in a CSV matrix dimension containing more than 2^31 elements, an index above INT_MAX could wrap to a negative iterator offset and point before the start of the vector, causing undefined behavior, heap memory corruption, or a crash. Triggering the issue requires an extremely large in-memory document, requiring tens of gigabytes of memory at minimum, so typical CSV documents are not practically affected. This issue is fixed in version 8.99.
Text from CVE List
Affected versions 1
- rapidcsvaffected: < 8.99CVE List