CVE-2026-103513: уязвимость памяти в десериализации CPC-скетчей Apache DataSketches C++
В Apache DataSketches C++ (datasketches-cpp) обнаружены чтение и запись за границами буфера при десериализации CPC-скетчей. Уязвимость затрагивает версии с 2.0.0-incubating до 5.3.0 и позволяет повредить heap-память через специально сформированный скетч. Исправление выпущено в версии 5.3.0.
Подробности
Уязвимость затрагивает Apache DataSketches C++ в диапазоне версий от 2.0.0-incubating до 5.3.0 включительно (до исправления). Тип проблемы — out-of-bounds read и out-of-bounds write, то есть чтение и запись за границами буфера, что классифицируется как повреждение памяти (CWE-787/CWE-125). Атака возможна через специально сформированный сериализованный CPC-скетч, переданный в cpc_sketch::deserialize() — как из байтового буфера, так и из потока. При декомпрессии данных позиция чтения проверялась только после завершения декодирования, поэтому декомпрессор мог прочитать данные за пределами сжатого буфера. В «гибридном» варианте (hybrid flavor) десериализация также могла привести к записи за пределами внутреннего heap-буфера: декодированные индексы строк не проверялись на корректность. Кроме того, не валидировались и некоторые другие поля заголовка и декодированные значения, включая lg_k. Последствия — повреждение heap-памяти, что может вызвать аварийное завершение приложения (крэш) и потенциально создать условия для дальнейшей эксплуатации уязвимости. CVSS-оценка в записи CVE не приводится. Важно: уязвимы только те приложения, которые десериализуют CPC-скетчи (CPC sketches) из недоверенных источников. Если приложение не принимает такие скетчи извне, риск существенно ниже.Что делать
Рекомендуется обновить Apache DataSketches C++ до версии 5.3.0, в которой проблема исправлена. Это основной и наиболее надёжный способ устранения уязвимости. Дополнительные меры на время до обновления: — не передавайте CPC-скетчи из недоверенных источников в cpc_sketch::deserialize(); — ограничьте источники данных, из которых приложение принимает сериализованные скетчи, и проверяйте их подлинность; — если десериализация недоверенных данных необходима, рассмотрите изоляцию обработки (например, в отдельном процессе или песочнице), чтобы ограничить последствия возможного повреждения памяти; — следите за обновлениями проекта Apache DataSketches и уведомлениями по безопасности. Итог: CVE-2026-103513 — серьёзная уязвимость повреждения памяти в Apache DataSketches C++, эксплуатируемая через специально сформированный CPC-скетч при десериализации. Она затрагивает версии до 5.3.0. Если ваш продукт использует datasketches-cpp и принимает скетчи из внешних источников, обновление до 5.3.0 следует выполнить в приоритетном порядке.Источник: CVE Project (cvelistV5)
