CVE-2026-103636
Received Received - Intake

Out-of-Bounds Read in Apache DataSketches C++ VarOpt Union

Vulnerability report for CVE-2026-103636, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-10-10

Last updated on: 2026-10-10

Assigner: Apache Software Foundation

Description

Out-of-bounds read in the VarOpt union deserialization of Apache DataSketches C++ (repo: datasketches-cpp). var_opt_union::deserialize() read the 32-byte preamble of a non-empty union after checking that only 8 bytes were available, so a truncated serialized union could cause a read of up to 24 bytes past the end of the input. For such inputs, the size remaining for the embedded sketch was also computed by an unsigned subtraction that could wrap around, so the embedded sketch's own size checks no longer limited reads to the input. The bytes read can become part of the deserialized union's state. This can cause a crash (denial of service) and could expose adjacent memory contents. This issue affects Apache DataSketches C++: from 2.0.0-incubating before 5.3.0. Only applications that deserialize VarOpt unions from untrusted sources are affected. Users are recommended to upgrade to version 5.3.0, which fixes this issue.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-10-10
Last Modified
2026-10-10
Generated
2026-10-10
AI Q&A
2026-10-10
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
Apache Software Foundation Apache DataSketches 2.0.0-incubating

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-125 The product reads data past the end, or before the beginning, of the intended buffer.
CWE-191 The product subtracts one value from another, such that the result is less than the minimum allowable integer value, which produces a value that is not equal to the correct result.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This is an out-of-bounds read vulnerability in Apache DataSketches C++. When processing a truncated serialized VarOpt union, the deserialize function reads up to 24 extra bytes beyond the input buffer. An unsigned subtraction can also wrap around, bypassing size checks and allowing further out-of-bounds reads. This may crash the application or expose adjacent memory.

Detection Guidance

To detect this vulnerability, check the version of Apache DataSketches C++ installed on your system. If the version is between 2.0.0-incubating and 5.2.0, the system is vulnerable. Use commands like 'find / -name "datasketches-cpp*" 2>/dev/null' to locate the library and 'strings <library_path> | grep -i "version"' to check the version.

Impact Analysis

The vulnerability can cause denial of service by crashing the application. It may also expose adjacent memory contents, potentially leaking sensitive data. Only systems deserializing VarOpt unions from untrusted sources are affected.

Mitigation Strategies

Immediately upgrade Apache DataSketches C++ to version 5.3.0 or later. If upgrading is not possible, restrict deserialization of VarOpt unions from untrusted sources to prevent exploitation.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-103636. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart