Разработчики FreeBSD выпустили экстренный патч для устранения критической уязвимости в утилите ping. Проблема могла использоваться для провоцирования сбоев в работе утилиты или удаленного выполнения произвольного кода с правами root.
Уязвимость исправили в составе обновлений 13.1-RELEASE-p5, 12.4-RC2-p2 и 12.3-RELEASE-p10.
Сообщается, что проблема, получившая идентификатор CVE-2022-23093 (9,8 балла из 10 возможных по шкале оценки уязвимостей CVSS), затрагивает все поддерживаемые версии FreeBSD и связана с переполнения буфера стека в ping.
Корень этого бага крылся в работе функции pr_pack(), которая копирует полученные IP- и ICMP-заголовки в буферы стека для дальнейшей обработки. Дело в том, что pr_pack() не учитывала тот факт, что помимо заголовков IP пакет может содержать дополнительные расширенные заголовки, что в итоге могло вести к переполнению буфера.
При этом разработки FreeBSD отмечают, что опасность ошибки немного уменьшается благодаря тому, что процесс ping выполняется в состоянии изоляции системных вызовов (capability mode), а следовательно, его взаимодействие с остальной ОС и попытки эксплуатации уязвимости весьма ограничены.
Источник: xakep