CVE-2018-7445
MikroTik RouterOS
2022-09-08
In MikroTik RouterOS, a stack-based buffer overflow occurs when processing NetBIOS session request messages. Remote attackers with access to the service can exploit this vulnerability and gain code execution on the system.
Технический анализ и план устранения
Суть уязвимости
CVE-2018-7445 представляет собой критическую уязвимость типа «переполнение буфера в стеке» (stack-based buffer overflow) в сервисе SMB MikroTik RouterOS. Проблема возникает при некорректной обработке имен в сообщениях запроса сессии NetBIOS (NetBIOS session request).
Удаленный злоумышленник, имеющий доступ к порту службы SMB (TCP 139 или 445), может отправить специально сформированный пакет, что приведет к перезаписи памяти стека. Это позволяет выполнить произвольный код (RCE) с правами системы и получить полный контроль над сетевым устройством. Уязвимость актуальна для всех версий RouterOS до 6.41.3 (в ветке Bugfix/Long-term) и 6.42rc27 (в ветке Current).
Как исправить
Единственным надежным способом устранения уязвимости является обновление RouterOS до версии, в которой данная ошибка исправлена.
- Проверьте текущую версию системы:
/system resource print
- Проверьте наличие обновлений:
/system package update check-for-updates
- Если доступна версия выше 6.41.3 (Long-term) или 6.42 (Current), выполните загрузку и установку:
/system package update download
/system package update install
- После перезагрузки убедитесь, что прошивка Firmware (RouterBOOT) также обновлена:
/system routerboard upgrade
/system reboot
Временные меры
Если немедленное обновление невозможно, необходимо полностью отключить службу SMB или ограничить доступ к ней с помощью межсетевого экрана.
- Полное отключение службы SMB (рекомендуется):
/ip smb set enabled=no
- Ограничение доступа к SMB только для доверенных IP-адресов (если служба необходима):
/ip firewall filter add action=drop chain=input dst-port=139,445 protocol=tcp src-address-list=!TRUSTED_ADMINS
- Отключение SMB через интерфейс (альтернативный способ):
/ip smb set allow-guests=no interfaces=none