Библиотека c-ares является асинхронным резолвером. С версии 1.32.3 по 1.34.4 существует уязвимость use-after-free в функции read_answers(),…
Библиотека c-ares является асинхронным резолвером. С версии 1.32.3 по 1.34.4 существует уязвимость use-after-free в функции read_answers(), когда process_answer() может повторно поставить запрос в очередь либо из-за сбоя DNS Cookie, либо когда вышестоящий сервер не поддерживает EDNS должным образом, либо, возможно, при запросах TCP, если удаленный сервер немедленно закрывает соединение после ответа. Если при попытке отправить новый запрос возникла проблема, он закроет дескриптор соединения, но функция read_answers() все еще ожидает, что дескриптор соединения будет доступен для возможной отмены других ответов. Теоретически, удаленный злоумышленник может спровоцировать это, наводнив цель пакетами ICMP UNREACHABLE, если он также контролирует вышестоящий сервер имен и может вернуть результат с одним из этих условий (это не было протестировано). В противном случае только локальный злоумышленник может изменить поведение системы, чтобы функция send()/write() возвращала условие сбоя. Эта уязвимость исправлена в версии 1.34.5 [1]. Источники: - [1] https://github.com/c-ares/c-ares/security/advisories/GHSA-6hxc-62jh-p29v - [2] https://github.com/c-ares/c-ares/pull/821 - [3] https://github.com/c-ares/c-ares/commit/29d38719112639d8c0ba910254a3dd4f482ea2d1
Продукт повторно использует или ссылается на память после её освобождения. В какой-то момент эта память может быть выделена повторно и сохранена в другом указателе, тогда как исходный указатель на освобождённую память используется вновь. Поскольку теперь по этому адресу может храниться посторонний объект, исходное использование указателя может привести к повреждению памяти или иным непреднамеренным последствиям. Если новая структура данных содержит указатель на функцию, то при исполнении может быть вызван код, контролируемый злоумышленником.
https://cwe.mitre.org/data/definitions/416.html →Открыть в коллекции CWE →