Vulnerabilidades en SCP permiten escritura de ficheros arbitrarios en el cliente
La vulnerabilidad principal, que data de hace 35 años, afecta a OpenSSH SCP, PuTTY PSCP y WinSCP. El fallo permite al servidor escribir ficheros en el cliente sin que se dé cuenta.
SCP es una herramienta para transferir ficheros a través de SSH empleada por administradores de todo el mundo, y que cuenta con múltiples implementaciones para diferentes sistemas, como OpenSSH, PuTTY o WinSCP. El fallo descubierto, permitiría a un servidor malicioso copiar ficheros no solicitados en el equipo del cliente sin informarse de ello.
Un posible caso de explotación, tal y como detalla sintonen.fi, sería un ataque MitM (Man in the Middle) entre un administrador y un servidor que administre, para que al utilizar scp se copie a su máquina un fichero ‘.bash_aliases’ en su directorio de usuario que permita al atacante ejecutar cualquier comando en la máquina del sysadmin. Este tipo de ataque requiere que la víctima acepte el cambio de fingerprint en el servidor.
El problema principal, que se encuentra desde 1983 (hace 35 años), tiene como origen el protocolo RCP del proyecto BSD, que es en el que se basa SCP. Debido al error la mayoría de clientes SCP no validan correctamente que los ficheros devueltos por el servidor son aquellos que se solicitó. Las vulnerabilidades en concreto son:
- CWE-20 (CVE-2018-20685): validación incorrecta del nombre de directorio. El servidor puede cambiar permisos de la carpeta utilizando un nombre de carpeta vacío (“D0777 0 n”) o con punto (“D0777 0 .n”).
- CWE-20 (CVE-2019-6111 y CVE-2018-20684 en WinSCP): debido al estándar derivado de rcp de 1983, es el servidor el que establece los ficheros que se copian al cliente sin que se valide. Si se utiliza el parámetro “-r”, también pueden copiarse carpetas sin validación.
- CWE-451 (CVE-2019-6109): spoofing en el cliente utilizando el nombre del objeto. Mediante dicho nombre, pueden escribirse caracteres ANSI que modifiquen la salida, para por ejemplo ocultar archivos transferidos.
- CWE-451 (CVE-2019-6110): spoofing en el cliente utilizando stderr. Similar al anterior, pero aprovechando que el servidor puede escribir una salida de error en el cliente.
Algunos de los clientes afectados son OpenSSH scp (versiones anteriores a 7.9), PuTTY PSCP (todavía sin parche), y WinSCP scp (hasta la versión 5.13). Una posible solución si el cliente lo permite (como OpenSSH) es cambiar el protocolo a SFTP, aunque los servidores utilizados deben de soportar dicho protocolo. Otros clientes o programas que empleen SCP pueden encontrarse afectados.
Fuente:
scp client multiple vulnerabilities:
https://sintonen.fi/advisories/scp-client-multiple-vulnerabilities.txt
Powered by WPeMatico