Apache DataSketches: уязвимость чтения за границами буфера в datasketches-cpp CVE-2026-103636
В Apache DataSketches C++ обнаружена уязвимость чтения за границами буфера при десериализации VarOpt-объединений из усечённых данных. Проблема затрагивает версии с 2.0.0-incubating до 5.3.0 и может привести к отказу в обслуживании и утечке содержимого смежной памяти. Уязвимы только приложения, десериализующие VarOpt-объединения из недоверенных источников.
Подробности
Уязвимость затрагивает Apache DataSketches C++ в диапазоне версий от 2.0.0-incubating до 5.3.0 (не включая 5.3.0). Причина — некорректная логика в функции var_opt_union::deserialize(). Перед чтением 32-байтового заголовка непустого объединения код проверял наличие лишь 8 байт. В результате при десериализации усечённого сериализованного объединения чтение могло выходить за пределы входного буфера на расстояние до 24 байт. Дополнительно размер, оставшийся для встроенного скетча, вычислялся через беззнаковое вычитание, способное вызвать переполнение (wrap around). Из-за этого собственные проверки размера встроенного скетча переставали ограничивать чтение в пределах входных данных. Считанные байты могли попасть в состояние десериализованного объединения. Последствия — аварийное завершение процесса (отказ в обслуживании), а также потенциальная возможность раскрытия содержимого смежных областей памяти. Уязвимы только те приложения, которые десериализуют VarOpt-объединения из недоверенных источников. Значение CVSS в записи CVE не указано.Что делать
Разработчикам рекомендуется обновить Apache DataSketches C++ до версии 5.3.0, в которой уязвимость устранена. Если обновление невозможно, следует ограничить десериализацию VarOpt-объединений только данными из доверенных источников и не передавать в библиотеку усечённые или непроверенные сериализованные данные. Дополнительно стоит валидировать целостность и длину входных буферов до их обработки. В записи CVE иные обходные меры (временные митигации) не описаны. Итог: уязвимость чтения за границами буфера в Apache DataSketches C++ представляет риск отказа в обслуживании и возможной утечки данных смежной памяти. Единственная рекомендованная мера — обновление до версии 5.3.0.Источник: CVE Project (cvelistV5)
