Hanno Böck, autor do projeto , sobre a vulnerabilidade de interfaces de compilação interativa que permitem a execução de código externo em C. Ao especificar um caminho arbitrário na diretiva "#include", um erro de compilação inclui o conteúdo do arquivo que não pôde ser compilado.
Por exemplo, inserindo em um dos serviços online o código "#include <\/etc\/shadow>", foi possível obter o hash da senha do usuário root do arquivo \/etc\/shadow, o que também indica que o serviço web está sendo executado com permissões de root e executa comandos de compilação como usuário root (não se pode descartar que durante a compilação foi usado um contêiner isolado, mas a execução com permissões de root no contêiner também é um problema). O serviço problemático, onde foi possível reproduzir o problema, ainda não foi divulgado. Tentativas de abrir arquivos no pseudo-sistema de arquivos \/proc não foram bem-sucedidas, pois o GCC os interpreta como arquivos vazios, mas a abertura de arquivos de \/sys funciona.
Fonte: opennet.ru
