CVE-2023-27997

Fortinet FortiOS and FortiProxy SSL-VPN

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2023-06-13

Официальное описание

Fortinet FortiOS and FortiProxy SSL-VPN contain a heap-based buffer overflow vulnerability which can allow an unauthenticated, remote attacker to execute code or commands via specifically crafted requests.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2023-27997 (также известная как XORtigate) — это критическая уязвимость переполнения буфера в куче (heap-based buffer overflow) в компоненте SSL-VPN. Ошибка возникает из-за некорректной обработки входящих данных, закодированных специфическим образом.

Уязвимость позволяет неавторизованному удаленному злоумышленнику выполнить произвольный код (RCE) или вызвать отказ в обслуживании (DoS) путем отправки специально сформированного HTTP-запроса на интерфейс SSL-VPN. Эксплуатация возможна даже в том случае, если на устройстве включена двухфакторная аутентификация (2FA), так как переполнение происходит до этапа проверки учетных данных.

Как исправить

Основным и рекомендуемым способом устранения является обновление прошивки FortiOS до актуальных версий, в которых данная ошибка исправлена.

Необходимо установить одну из следующих версий (или выше): * FortiOS 7.2.5 * FortiOS 7.0.12 * FortiOS 6.4.13 * FortiOS 6.2.15 * FortiOS 6.0.17 * FortiProxy 7.2.4 * FortiProxy 7.0.10

Для проверки текущей версии и выполнения обновления используйте консоль (CLI):

get system status

execute restore config tftp <filename> <tftp_server_ip>

Временные меры

Если немедленное обновление прошивки невозможно, необходимо применить компенсирующие меры для снижения риска эксплуатации.

  1. Полное отключение функции SSL-VPN (наиболее эффективный метод):
config vpn ssl settings
set status disable
end

  1. Ограничение доступа к SSL-VPN по списку разрешенных IP-адресов (Local-In Policies):
config firewall address
edit "Trusted_IPs"
set subnet 1.2.3.4 255.255.255.255
next
end

config firewall local-in-policy
edit 1
set intf "wan1"
set srcaddr "Trusted_IPs"
set dstaddr "all"
set action accept
set service "SSL-VPN_Port"
set schedule "always"
next
edit 2
set intf "wan1"
set srcaddr "all"
set dstaddr "all"
set action deny
set service "SSL-VPN_Port"
set schedule "always"
next
end

  1. Использование альтернативных методов удаленного доступа, таких как IPsec VPN, которые не подвержены данной уязвимости.