CVE-2019-20367: уязвимость чтения за границами буфера в libbsd
В библиотеке libbsd до версии 0.10.0 обнаружена уязвимость чтения за границами буфера (out-of-bounds read), возникающая при сравнении имени символа из таблицы строк. Проблема затрагивает компонент nlist.c и может привести к утечке данных или аварийному завершению процессов, использующих библиотеку. Уязвимость требует обновления до версии 0.10.0 или новее.
Подробности
Уязвимость затрагивает все версии libbsd до 0.10.0 включительно. Она классифицируется как out-of-bounds read — чтение за пределами выделенного буфера. Согласно описанию CVE, ошибка возникает в файле nlist.c во время сравнения имени символа, извлекаемого из таблицы строк (strtab). Из-за отсутствия должной проверки границ при обработке данных программа может обратиться к памяти за пределами допустимого диапазона. Подобный тип уязвимости способен привести к двум основным последствиям. Во-первых, возможна утечка содержимого памяти — злоумышленник, способный влиять на обрабатываемые данные (например, на содержимое анализируемого бинарного файла или библиотеки), может получить фрагменты информации, находящейся за границей буфера. Во-вторых, чтение некорректного адреса нередко вызывает аварийное завершение (crash) процесса, что открывает возможность для отказа в обслуживании (DoS). Сведения о значении базового балла CVSS в записи CVE отсутствуют, как и подробные данные о векторе атаки. Тем не менее характер уязвимости указывает на то, что для её эксплуатации, как правило, требуется, чтобы приложение обрабатывало специально сформированные или недоверенные данные через функции nlist. Это делает проблему наиболее актуальной для утилит и сервисов, анализирующих бинарные файлы, а также для систем, где libbsd используется как зависимость стороннего программного обеспечения.Что делать
Основная и наиболее надёжная рекомендация — обновить libbsd до версии 0.10.0 или более поздней, в которой ошибка устранена. Обновление следует выполнять через штатные менеджеры пакетов дистрибутива либо путём сборки из официального источника. Если немедленное обновление невозможно, стоит рассмотреть временные меры. В их числе: ограничение круга приложений и пользователей, имеющих доступ к функциональности, задействующей nlist; отказ от обработки недоверенных бинарных файлов до установки патча; применение механизмов изоляции (например, sandbox, ограничение привилегий), снижающих потенциальный ущерб от аварийного завершения процесса. Также целесообразно проверить, входит ли libbsd в состав используемого стека ПО, и уточнить у поставщиков наличие исправлений, если библиотека поставляется в составе проприетарных или вендорских решений. Дополнительно рекомендуется отслеживать обновления безопасности дистрибутива: многие производители выпускают собственные патчи для уязвимых версий пакета независимо от апстрима. Итог: CVE-2019-20367 — умеренно опасная уязвимость чтения за границами буфера в libbsd, которая может привести к утечке данных или отказу в обслуживании. Риск снижается простым обновлением до версии 0.10.0 и выше; при отсутствии такой возможности помогут изоляция и ограничение обработки недоверенных данных. Всем, кто использует libbsd в своих продуктах или инфраструктуре, стоит провести инвентаризацию зависимостей и убедиться в актуальности версии библиотеки.Источник: CVE Project (cvelistV5)
