Исследователи из компаний Claroty и JFrog опубликовали результаты аудита безопасности пакета BusyBox, широко используемого во встраиваемых устройствах и предлагающего набор стандартных утилит UNIX, оформленных в виде единого исполняемого файла. В ходе проверки выявлено 14 уязвимостей, которые уже устранены в августовском выпуске BusyBox 1.34. Почти все проблемы неопасны и сомнительны с точки зрения применения в реальных атаках, так как требуют запуска утилит с полученными извне аргументами.
Отдельно выделяется уязвимость CVE-2021-42374, которая позволяет вызвать отказ в обслуживании при обработке специально оформленного сжатого файла утилитой unlzma, а в случае сборки с опций CONFIG_FEATURE_SEAMLESS_LZMA, также любыми другими компонентами BusyBox, включая tar, unzip, rpm, dpkg, lzma и man.
Уязвимости CVE-2021-42373, CVE-2021-42375, CVE-2021-42376 и CVE-2021-42377 позволяют вызвать отказ в обслуживании, но требуют запуска утилит man, ash и hush с параметрами, заданными атакующим.
Уязвимости с CVE-2021-42378 по CVE-2021-42386 затрагивают утилиту awk и потенциально могут привести к запуску кода, но для этого атакующему требуется добиться выполнения в awk определённого шаблона (необходимо запустить awk с передачей в первом аргументе командной строки данных, полученных от атакующего).
Дополнительно также можно отметить уязвимость (CVE-2021-43523) в библиотеках uclibc и uclibc-ng, связанную с тем, что при обращении к функциям gethostbyname(), getaddrinfo(), gethostbyaddr() и getnameinfo() не выполняется проверка и чистка доменного имени, возвращённого DNS-сервером. Например, в ответ на определённый запрос резолвинга подконтрольный злоумышленнику DNS-сервер может вернуть хосты вида “.attacker.com” и они будут в неизменном виде возвращены какой-то программе, которая без чистки может отобразить их web-интерфейсе. Проблема устранена в выпуске uclibc-ng 1.0.39 через добавление кода для проверки корректности возвращаемых доменных имён, реализованном по аналогии с Glibc.