Alerta de Segurança
| Gravidade: | Alto |
| Categoria: | Execução de Código Arbitrário por Usuários Privilegiados |
| Projetos afetados: | plataforma edx |
| Repórter: | Auditor de segurança terceirizado |
| URL permanente: | https://openedx.org/CVE-2015-5601 |
Durante uma auditoria de segurança de terceiros agendada do código da plataforma edx, foi descoberto que um bug permitia que certas categorias de usuários privilegiados executassem código arbitrário como o usuário do processo em execução.
As Vulnerabilidades e Exposições Comuns (CVE) designou o nome CVE-2015-5601 para este problema. Esta é uma entrada no CVE lista (http://cve.mitre.org), que padroniza nomes para problemas de segurança.
Mais informações
O problema está no endpoint de importação do curso, que aceita um upload de arquivo .tar.gz. É possível criar um arquivo tar que extraia arquivos no diretório edx-platform, em vez do diretório temporário que o aplicativo pretende usar (veja abaixo para obter detalhes). Como existem subdiretórios da plataforma edx no caminho da biblioteca python, as instruções “import foo” procurarão por “foo.py” nesses diretórios. Um invasor pode carregar um arquivo python com o nome apropriado para um desses diretórios e, na próxima vez que o aplicativo for reiniciado, ele será importado e executado.
O problema subjacente está no processamento do arquivo tar. O aplicativo tem o cuidado de não permitir arquivos e links simbólicos que usam caminhos percorridos ascendentes ou absolutos para apontar para fora do diretório de extração. No entanto, essas verificações, em “extract_tar.py”, assumem incorretamente que o diretório de extração é “.”, que resolve para “/edx/app/edxapp/edx-platform”; eles devem usar o diretório de extração real.
A extração real ocorre em um subdiretório específico do curso de “/edx/var/edxapp/data”, mas links simbólicos que apontam para subdiretórios de “edx-platform” podem ser criados e arquivos subsequentes podem ser extraídos para eles.
O bug foi corrigido neste comprometer-se.
![]()