Ataque a sistemas de compilação online através da manipulação de arquivos de cabeçalho

Hanno Böck, autor do projeto fuzzing-project.org, prestou atenção sobre a vulnerabilidade de interfaces de compilação interativas que permitem o processamento de código externo na linguagem C. Ao especificar um caminho arbitrário na diretiva "#include", ocorre um erro de compilação que inclui o conteúdo de um arquivo que não pôde ser compilado.

Por exemplo, substituindo “#include ” no código em um dos serviços online, a saída foi capaz de obter um hash da senha do usuário root do arquivo /etc/shadow, o que também indica que o serviço da web está sendo executado com direitos de root e executa os comandos de compilação como root (é possível que um contêiner isolado tenha sido usado durante a compilação, mas executar como root em um contêiner também é um problema). O serviço problemático no qual foi possível reproduzir o problema ainda não foi divulgado. As tentativas de abrir arquivos no pseudo FS /proc não tiveram êxito porque o GCC os trata como arquivos vazios, mas abrir arquivos de /sys funciona.

Fonte: opennet.ru

Adicionar um comentário