Alerta de seguridad
| Gravedad: | Alto |
| Categoría: | Ejecución de código arbitrario por parte de usuarios privilegiados |
| Proyectos afectados: | plataforma edx |
| Reportero: | Auditor de seguridad de terceros |
| URL permanente: | https://openedx.org/CVE-2015-5601 |
Durante una auditoría de seguridad de terceros programada del código de la plataforma edx, se descubrió que un error permitía que ciertas categorías de usuarios privilegiados ejecutaran código arbitrario como usuario del proceso en ejecución.
Las vulnerabilidades y exposiciones comunes (CVE) ha asignado el nombre CVE-2015-5601 a este problema. Esta es una entrada en el CVE lista (http://CVE.mitre.org), que estandariza nombres para problemas de seguridad.
Más Información
El problema está en el extremo de importación del curso, que acepta la carga de un archivo .tar.gz. Es posible crear un archivo tar que extraiga archivos en el directorio de la plataforma edx, en lugar del directorio temporal que la aplicación intenta usar (consulte los detalles a continuación). Dado que hay subdirectorios de edx-platform en la ruta de la biblioteca de python, las declaraciones "import foo" buscarán "foo.py" en estos directorios. Un atacante puede cargar un archivo python con el nombre adecuado en uno de esos directorios y, la próxima vez que se reinicie la aplicación, se importará y ejecutará.
El problema subyacente está en el procesamiento del archivo tar. La aplicación tiene cuidado de no permitir archivos y enlaces simbólicos que utilicen recorridos ascendentes o rutas absolutas para apuntar fuera del directorio de extracción. Sin embargo, estas comprobaciones, en "extract_tar.py", asumen incorrectamente que el directorio de extracción es ".", que se resuelve en "/edx/app/edxapp/edx-platform"; deberían usar el directorio de extracción real en su lugar.
La extracción real ocurre en un subdirectorio específico del curso de "/ edx/var/edxapp/data", pero se pueden crear enlaces simbólicos que apuntan a subdirectorios de "edx-platform" y se pueden extraer archivos posteriores a ellos.
El error fue corregido en este cometer.
![]()