Phpunity · Phpunit · CVE-2026-41570
**Nome do Software Vulnerável e Versões Afetadas**
PHPUnit versões anteriores a 12.5.22
PHPUnit versões anteriores a 13.1.6
**Descrição**
O PHPUnit encaminha configurações PHP INI para processos filhos como argumentos de linha de comando `-d name=value` sem neutralizar metacaracteres INI. Como o analisador INI do PHP trata quebras de linha como separadores de diretivas, um invasor que consiga influenciar um valor INI pode injetar diretivas arbitrárias na configuração do processo filho. Isso pode ser feito modificando entradas `<ini name="…" value="…"/>` nos arquivos `phpunit.xml` ou `phpunit.xml.dist`, ou influenciando configurações herdadas do runtime PHP do host via `ini get all()`. Ao definir a diretiva `auto prepend file` para um caminho controlado pelo invasor, é possível obter a execução remota de código no processo filho. Este problema é particularmente relevante em cenários de Execução de Pipeline Envenenada (Poisoned Pipeline Execution), onde um contribuidor não confiável envia um pull request modificando o `phpunit.xml` com caracteres de nova linha invisíveis que são executados por um sistema de CI sem isolamento. A função vulnerável é `PHPUnitUtilPHPJobRunner::settingsToParameters()`.
**Recomendações**
Atualize para a versão 12.5.22.
Atualize para a versão 13.1.6.
Audite o `phpunit.xml` e `phpunit.xml.dist` para garantir que nenhuma entrada `<ini value="…">` contenha caracteres de nova linha, `"` ou `;`.
Execute o PHPUnit em pull requests apenas em runners conteinerizados e efêmeros que descartem o estado do sistema de arquivos entre os jobs.
Exija revisão humana antes de executar pull requests de forks.
Aplique proteção de branch em workflows que manipulam segredos.
Restrinja o acesso de modificação ao `phpunit.xml`, tratando as entradas `<ini>` como sensíveis do ponto de vista de segurança.
Certifique-se de que o `php.ini` do host não contenha valores com quebras de linha incorporadas ou metacaracteres não escapados.