CVE-2026-103635: чтение за границами буфера в Apache DataSketches C++ при десериализации Theta-скетчей
В Apache DataSketches C++ (datasketches-cpp) обнаружена уязвимость чтения за границами буфера при десериализации компактных Theta-скетчей. Атака возможна только если приложение принимает скетчи из недоверенных источников. Эксплуатация приводит к отказу в обслуживании, а также потенциально к утечке содержимого соседней памяти.
Подробности
Уязвимость связана с функциями compact_theta_sketch::deserialize() и wrapped_compact_theta_sketch::wrap(). Обе функции считывают поля заголовка до того, как убедятся, что входных данных достаточно. В сжатом формате проверку размера удавалось обойти за счёт 32-битного переполнения, а два поля заголовка, управляющие декодированием, вообще не валидировались. Проблема затрагивает и десериализацию из потока. Специально сформированный или усечённый скетч вызывает чтение за пределами входного буфера. В случае сжатого формата перечитывание может быть значительным, а прочитанные байты способны попасть в состав десериализованного скетча. Последствия — аварийное завершение приложения (отказ в обслуживании) и потенциальное раскрытие содержимого смежных участков памяти. Уязвимы версии Apache DataSketches C++ с 3.1.0 по 5.3.0 (не включая 5.3.0). Затронуты только приложения, которые десериализуют Theta-скетчи из недоверенных источников. Значение CVSS в записи CVE не указано.Что делать
Рекомендуется обновить Apache DataSketches C++ до версии 5.3.0, в которой уязвимость устранена. Если обновление невозможно, следует ограничить приём скетчей из недоверенных источников: десериализовать только данные из проверенных каналов, добавить предварительную проверку длины и структуры входных данных, а также изолировать процессы, выполняющие десериализацию, чтобы снизить последствия возможного сбоя. Итог: уязвимость CVE-2026-103635 опасна прежде всего для сервисов, обрабатывающих внешние Theta-скетчи. Основная мера защиты — переход на версию 5.3.0; до этого стоит исключить обработку недоверенных скетчей.Источник: CVE Project (cvelistV5)
