## https://sploitus.com/exploit?id=5A21B3E4-3100-5C61-BBBA-A31CF718354D
# CVE-2017-9841
Laravel-RCE: CVE-2017-9841
CVE-2017-9841 é uma vulnerabilidade crítica de execução remota de código (RCE) que afeta a biblioteca PHPUnit, amplamente utilizada para testes automatizados em PHP. Essa falha permite que um atacante execute comandos arbitrários no servidor se conseguir acessar um arquivo específico do PHPUnit exposto publicamente.
📌 Detalhes principais
Identificador: CVE-2017-9841
GOOGLE DORK "inurl:"/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php"
Produto afetado: PHPUnit (componente phpunit/phpunit)
Versões vulneráveis: anteriores a 5.6.3 e 4.8.28
Tipo de vulnerabilidade: Execução remota de código (RCE)
Impacto: Crítico – permite ao atacante executar código PHP arbitrário no servidor.
🔍 Como funciona a vulnerabilidade
O problema reside no arquivo eval-stdin.php, localizado em:
text
/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
(ou em caminhos semelhantes, dependendo da estrutura do projeto).
Esse arquivo foi projetado para uso interno do PHPUnit, mas em muitas instalações ele permanece acessível publicamente. O código desse arquivo simplesmente lê dados da entrada padrão (php://input) e os executa diretamente com a função eval(). Ou seja, qualquer requisição POST enviada para esse endpoint será avaliada como código PHP.
Exemplo de exploração
Um atacante pode enviar uma requisição HTTP POST para o arquivo vulnerável contendo, por exemplo:
http
POST /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1
Host: alvo.com
Content-Type: application/x-www-form-urlencoded
Payload 🛡️ " "
O servidor executará o código e retornará a saída, confirmando a execução.
Com isso, o atacante pode escalar o ataque para obter um shell reverso, ler arquivos sensíveis, modificar dados, etc.
🛡️ Mitigação
Atualizar o PHPUnit para uma versão corrigida (≥ 5.6.3 ou ≥ 4.8.28).
Remover ou restringir o acesso ao diretório vendor/phpunit/ em ambientes de produção, uma vez que bibliotecas de teste não devem estar acessíveis publicamente.
Configurar o servidor para bloquear requisições a arquivos comuns de teste, como eval-stdin.php.
Usar um firewall de aplicação (WAF) para detectar e bloquear tentativas de exploração.
📚 Contexto adicional
Essa vulnerabilidade tornou-se muito conhecida porque muitos projetos, inadvertidamente, deixam o diretório vendor acessível ao público. Como o PHPUnit é uma dependência comum em projetos PHP (inclusive frameworks como Laravel, Symfony, etc.), a exposição acidental é frequente. Por isso, é um dos primeiros vetores testados em scans automatizados de segurança.
Se você é desenvolvedor ou administrador de sistemas, verifique se seus sites em produção não possuem o arquivo eval-stdin.php acessível externamente.