Me asignaron una tarea para mi clase de Seguridad informática. Nos dieron una pieza de código para analizar y determinar las vulnerabilidades que podría tener.
#!/bin/sh
# shell script to create a copy of the shadow file to the /tmp directory
echo > /tmp/shadowcopy
# allow only root access
chmod 600 /tmp/shadowcopy
# append the original file to the copy
cat /etc/shadow >> /tmp/shadowcopy
# Hint: the access permissions of a file in linux are verified when the file is opened.
# the process will keep the original permissions as long as it keeps the file open, even
# if permissions change.
Algunos compañeros de clase y yo determinamos que este script podría sufrir una vulnerabilidad de condición de carrera si dos procesos independientes intentan abrir / tmp / shadowcopy.
También creemos que la vulnerabilidad de inyección de comandos podría ser posible si se cambia / tmp / shadowcopy antes de que comience el anexo.
¿Son nuestras suposiciones acerca de este script de shell correctas? ¿O nos falta una vulnerabilidad importante que podría explotarse si se utiliza el script?