Множественные уязвимости существуют в cbor2 через версию 5.7.0 в функции decode_definite_long_string() удлинителя C (source/decoder.c): (1)…
Множественные уязвимости существуют в cbor2 через версию 5.7.0 в функции decode_definite_long_string() удлинителя C (source/decoder.c): (1) Недостаточный поток, ведущий к выходу из границ Читать (CWE-191, CWE-125): Неправильная переменная ссылка и отсутствующее сброс состояния в цикле обработки куска приводит к тому, что buffer_length не Это приводит к последующим вычислениям chunk_length, производя отрицательные значения (например, chunk_length = 65536 - buffer_length), которые передаются в виде подписанных целых чисел на метод read(), потенциально вызывая неограниченные операции чтения и исчерпание ресурсов. (2) Утечка памяти через Missing Reference Count Release (CWE-401): Основной цикл обработки не выпускает ссылки на объекты Python (Py_DECREF) для объектов, выделенных в каждой итерации. Для строк CBOR длиной более 65536 байтов это вызывает кумулятивные утечки памяти, пропорциональные размеру полезной нагрузки, что позволяет атаковать исчерпание памяти посредством повторной обработки больших полезных нагрузок CBOR. Обе уязвимости могут быть использованы удаленно без аутентификации путем отправки специально созданных данных CBOR, содержащих текстовые строки определенной длины с многобайтными символами UTF-8, расположенными на границах 65536-байт. Успешная эксплуатация приводит к отказу в обслуживании через сбои процессов (исключения CBORDecodeEOF) или истощение памяти. Уязвимости затрагивают все приложения, использующие расширение Cor2 для обработки недоверных данных CBOR, включая веб-API, сборщиков данных IoT и процессоры очереди сообщений. Исправлено в миксах 851473490281f82d8,823684ef6f6f6f6f9f, выбитый с выпущенной версией 5.7.1.
Продукт вычитает одно значение из другого таким образом, что результат оказывается меньше минимально допустимого целочисленного значения, что даёт значение, не равное корректному результату.
https://cwe.mitre.org/data/definitions/191.html →Открыть в коллекции CWE →