Zserio Framework BitStreamReader Integer Overflow Vulnerability Leading to Denial-of-Service

Vulnerability

A high-severity integer overflow vulnerability has been identified in the Zserio framework, specifically in the BitStreamReader component, prior to version 2.18.1. On 32-bit platforms, the readBytes() and readString() functions improperly handle variable-sized data, allowing an overflowed value to bypass bounds checks. This flaw enables the code to read up to 512 MB from a buffer only a few bytes long, resulting in a segmentation fault. This vulnerability impacts Zserio's C++ runtime and could disrupt Advanced Driver-Assistance Systems (ADAS) functionality in affected vehicles.

Impact

Exploitation of this vulnerability causes a segmentation fault, leading to a denial-of-service condition. However, given Zserio's role in the Navigation Data Standard (NDS) used by major automotive manufacturers, such as Toyota and BMW, this vulnerability could have broader implications for vehicle functionality.

Reproduction

The vulnerability can be reproduced on a 32-bit platform by using a payload that encodes a variable size of 536,870,912 bytes. This payload, when processed by the readVarSize() function, causes an integer overflow in the setBitPosition() method, bypassing the necessary bounds check. Following this, the readBytes() function attempts to read 512 MB from a buffer that is only a few bytes long, resulting in a segmentation fault.

Remediation

Users are advised to update to Zserio version 2.18.1 or later, where this vulnerability has been fixed.

Added: Apr 24, 2026, 8:58 PM
Updated: Apr 24, 2026, 8:58 PM

Vulnerability Rating

Custom Algorithm
spread
0.0
impact
3.1
exploitability
8.7
remediation
0.0
relevance
6.6
threat
6.4
urgency
2.9
incentive
4.2

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.