Открыт исходный код инструмента для выявления уязвимостей в коде C, C++

Открыт исходный код инструмента для выявления уязвимостей в коде C, C++

Открыт исходный код инструмента для выявления уязвимостей в коде C, C++

Компания Galois открыла исходный код своего набора инструментов, который помогает обнаруживать уязвимости в софте, написанном на языках C и C++. Проект под названием MATE получил поддержку Управления перспективных исследовательских проектов Министерства обороны США (DARPA).

MATE проводит статический анализ софта и может выявить баги в приложениях. В своей работе инструмент полагается на графическое представление исходного кода — Code Property Graph (CPG).

В набор инструментов включены несколько приложений: Flowfinder, MATE Notebooks, MATE POIs и Mantiserve. Flowfinder, например, предоставляет пользовательский интерфейс в браузере и помогает провести межпроцедурный анализ потоков данных.

Помимо этого, в наборе есть несколько автоматизированных анализаторов, предназначенных для детектирования уязвимостей, — Points of Interest (POIs). А Mantiserve поможет интегрировать CPG с инструментом Manticore для символьного выполнения.

По словам Galois, функциональность MATE поможет пользователям анализировать куски программ, которые слишком большие и сложные для простого символьного анализа. Кроме того, смежная задача MATE — помочь интеграции CPG и внедрению Python API в программы.

Уязвимость переполнения глобального буфера в zlib грозит DoS и даже RCE

В широко используемой библиотеке zlib выявлена критическая уязвимость, позволяющая через порчу памяти вызвать сбой программы (DoS). Ее также потенциально можно использовать для удаленного выполнения стороннего кода в системе.

Пока не решенной проблеме, классифицируемой как переполнение буфера в глобальной памяти, присвоен идентификатор CVE-2026-22184. Поскольку эксплойт тривиален, степень опасности уязвимости была оценена в 9,3 балла по шкале CVSS.

Катастрофическая ошибка возникает при запуске утилиты untgz, а точнее, при выполнении функции TGZfname(), отвечающей за обработку имен архивных файлов, вводимых через консоль.

Как оказалось, уязвимый код не проверяет длину ввода перед копированием. Когда она превышает 1024 байт, происходит запись за границей буфера, что приводит к нарушению целостности памяти.

Проблему усугубляет тот факт, что untgz отрабатывает до парсинга и валидации архива. Эксплойт в данном случае не требует создания вредоносного файла со сложной структурой, достаточно лишь передать длинное имя в качестве аргумента командной строки.

Уязвимости подвержены все сборки zlib до 1.3.1.2 включительно. В качестве временной меры защиты админам и разработчикам рекомендуется ограничить использование untgz либо вовсе удалить соответствующий пакет до появления пропатченной версии.

RSS: Новости на портале Anti-Malware.ru