HTTPoxy - O meu aplicativo PHP foi afetado?
Environment
Red Hat Enterprise Linux 5.x
Red Hat Enterprise Linux 6.x
Red Hat Enterprise Linux 7.x
Red Hat Software Collections para Red Hat Enterprise Linux 6 e 7
Issue
Este problema acontece quando você está usando PHP em todos os modos típicos - mod_php, CGI ou FastCGI.
As variáveis super globaisgetenv('HTTP_PROXY')
e $_SERVER['HTTP_PROXY']
do PHP podem fornecer o conteúdo do cabeçalho Proxy da solicitação HTTP.
Caso seu script PHP utilizegetenv('HTTP_PROXY')
ou $_SERVER['HTTP_PROXY']
para configurar o proxy de saída para as solicitações HTTP subsequentes, ou se o seu script usar um módulo ou uma biblioteca expondo este comportamento, for exemplo o módulo Guzzle, é possível que todo o tráfego HTTP subsequente proveniente do script PHP seja redirecionado através de um proxy externo ao controle do invasor.
Observe que a extensãocurl
embutida do PHP fornecendo vinculações à bibliotecalibcurl
não é vulnerável propriamente dita, a vulnerabilidade é introduzida pelas bibliotecas do PHP que usam os métodos descritos acima para determinar o uso do proxy.
Por favor, observe também que isto se torna um problema apenas se o script PHP afetado for implantado em um servidor HTTP, o qual fornece os conteúdos do cabeçalho Proxy de uma solicitação HTTP recebida para o script PHP.
Resolution
A Red Hat emitiu atualizações e guias de mitigação para os servidores HTTP, impedindo que eles forneçam os conteúdos do cabeçalho Proxy HTTP para o script PHP. A atualização do seu servidor HTTP ou a aplicação de mitigações fechará este vetor e impedirá a exploração desta falha.
Para impedir que o cabeçalho fornecido pelo invasor seja utilizado, aplique uma das abordagens a seguir:
- Configure seu aplicativo web para remover o cabeçalho Proxy das solicitações HTTP recebidas
- Configure seu servidor HTTP para remover o cabeçalho Proxy antes dos scripts PHP serem invocados
- Ao usar o servidor httpd Apache, consulte a solução HTTPoxy - O meu Apache mod_cgi foi afetado? para instruções. As versões httpd atualizadas também excluem automaticamente o cabeçalho Proxy do conjunto de cabeçalhos disponíveis para scripts.
- Ao usar o servidor nginx, consulte a solução HTTPoxy - O meu nginx foi afetado? para instruções.
-
Edite seus scripts PHP para que tenham o seguinte extrato próximo da parte superior, depois de
<?php
:putenv("HTTP_PROXY="); $_SERVER["HTTP_PROXY"] = "";
Se você estiver executando PHP sob Apache/mod_php, também adicione o seguinte depois do que foi mencionado acima:
apache_setenv('HTTP_PROXY', '');
Root Cause
Consulte HTTPoxy - Conflito de nome da variável "HTTP_PROXY" em CGI para mais informações.
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments