Na biblioteca , fornecendo manipuladores para proteção contra por meio da substituição de arquivos no formato 'Phar', (), permitindo contornar a proteção contra a desserialização de código através da substituição de caracteres '..' no caminho. Por exemplo, um invasor pode usar um URL como 'phar://path/bad.phar/../good.phar' e a biblioteca destacará, durante a verificação, o nome base '/path/good.phar', embora no processamento posterior desse caminho, o arquivo '/path/bad.phar' seja utilizado.
A biblioteca foi desenvolvida pelos criadores do CMS TYPO3, mas também é utilizada em projetos Drupal e Joomla, tornando-os também vulneráveis. O problema foi resolvido nas versões . O projeto Drupal solucionou o problema nas atualizações 7.67, 8.6.16 e 8.7.1. No Joomla, o problema surgiu a partir da versão 3.9.3 e foi corrigido na versão 3.9.6. Para resolver o problema no TYPO3, é necessário atualizar a biblioteca PharStreamWrapper.
Do ponto de vista prático, a vulnerabilidade no PharStreamWrapper permite que um usuário do Drupal Core, com permissões de administrador de tema ('Administer theme'), envie um arquivo phar malicioso e faça com que o PHP contido nele seja executado como um legítimo arquivo phar. Lembramos que a essência do ataque 'Phar deserialization' está no fato de que, ao verificar arquivos carregados com a função PHP file_exists(), esta função executa automaticamente a desserialização dos metadados de arquivos Phar (PHP Archive) ao processar caminhos que começam com 'phar://'. O envio de um arquivo phar é possível disfarçado como uma imagem, uma vez que a função file_exists() determina o tipo MIME com base no conteúdo, e não na extensão.
Fonte: opennet.ru
