CVE-2026-45034: PhpSpreadsheet: bypass da verificação de wrapper phar leva a risco de desserialização
As versões do PhpSpreadsheet anteriores à 1.30.5 contêm um bypass da correção anterior para o CVE-2026-34084, em que um caminho phar especialmente formado contorna a verificação de wrappers. Segundo o aviso do GitHub, isso pode levar à desserialização de metadados de phar controlados pelo atacante, e o CNA atribuiu pontuação crítica de 9.2 no CVSS 4.0. A falha foi corrigida na versão 1.30.5 e nenhuma exploração confirmada aparece nas fontes consultadas.
Visão geral
O PhpSpreadsheet é uma biblioteca PHP pura para leitura e escrita de arquivos de planilha. O aviso de segurança do GitHub descreve um bypass da correção anterior (CVE-2026-34084) no auxiliar File::prohibitWrappers, que deveria rejeitar wrappers de stream como o phar. Segundo o aviso, um caminho phar especialmente formado, com três ou mais barras após o esquema, faz com que a verificação seja ignorada enquanto o PHP ainda abre o wrapper phar. Consulte a GHSA-87m4-826x-3crx para a descrição do fornecedor.
Impacto
- Segundo o aviso, no PHP 7.x, alcançar o wrapper phar pode disparar a desserialização automática de metadados do phar e a execução remota de código.
- Segundo o aviso, no PHP 8.x a cadeia se reduz a uma primitiva de leitura de arquivo via wrapper phar, e a execução de código depende de o código downstream chamar Phar::getMetadata.
- O CNA atribuiu pontuação base CVSS 4.0 de 9.2, com vetor de rede, baixa complexidade, sem privilégios e sem interação do usuário, e alto impacto em confidencialidade, integridade e disponibilidade.
- A fraqueza é classificada como CWE-502, Desserialização de Dados Não Confiáveis.
- Inferência: aplicações que passam caminhos de arquivo influenciados pelo usuário para o IOFactory::load são a exposição mais relevante.
Produtos e versões afetadas
- O aviso descreve as versões do PhpSpreadsheet anteriores à 1.30.5 como afetadas.
- A lista estruturada de afetados no registro está vazia, então a faixa exata e eventuais versões anteriores não afetadas são desconhecidas nas fontes consultadas.
- O aviso afirma que o problema está corrigido na versão 1.30.5. A lista estruturada de correções no registro está vazia.
Status de exploração
- O catálogo KEV da CISA não lista este CVE no registro fornecido.
- Nenhuma exploração ativa ou explorada na natureza confirmada aparece nas fontes consultadas.
- Dados do EPSS não estão disponíveis no registro, portanto a probabilidade de exploração é desconhecida.
Remediação e mitigação
- Atualize o PhpSpreadsheet para a versão 1.30.5 ou superior, conforme indicado pelo aviso.
- Se a atualização imediata não for possível, evite passar nomes ou caminhos de arquivo fornecidos pelo usuário ao IOFactory::load e restrinja entradas de arquivo a locais confiáveis e validados.
- Avalie se wrappers de stream como o phar são necessários no ambiente e restrinja-os onde for viável.
- Revise o código downstream em busca de chamadas a Phar::getMetadata, pois o aviso associa o impacto mais grave no PHP 8.x a essa chamada.
- Confirme a versão do PHP em uso, pois o aviso descreve impactos diferentes para o PHP 7.x e o PHP 8.x.
Orientações de detecção
- Faça o inventário de projetos que dependem do PhpSpreadsheet e registre a versão instalada a partir de arquivos de lock ou pacotes implantados.
- Revise logs de aplicação em busca de operações de carregamento de arquivo que recebam esquemas de wrapper de stream em entradas do usuário.
- Monitore processos workers do PHP em busca de processos filhos inesperados ou conexões de saída após atividades de importação de planilhas.
Limitações das informações disponíveis
- O registro não possui título, então os títulos desta análise foram derivados da descrição.
- As listas estruturadas de afetados e correções estão vazias; os detalhes de versão dependem do texto da descrição.
- Não há dados de EPSS, SSVC ou detalhes de exploração do KEV.
- O status da fonte é Deferred, e a única referência do fornecedor no registro é o aviso do GitHub.
- As páginas do NVD e do CVE.org são listadas como páginas de origem, mas seu conteúdo não foi fornecido.
- Detalhes do CVE-2026-34084 original não estão incluídos no registro.
- A disponibilidade de prova de conceito ou exploit público é desconhecida.
Perguntas frequentes
Quais versões do PhpSpreadsheet são afetadas pelo CVE-2026-45034?
O aviso descreve as versões anteriores à 1.30.5 como afetadas. A lista estruturada de afetados no registro está vazia, então a faixa exata é desconhecida nas fontes consultadas.
Qual é a correção recomendada?
Segundo o aviso do GitHub, o problema está corrigido no PhpSpreadsheet 1.30.5. Atualizar para essa versão ou superior é a principal remediação.
Esta vulnerabilidade está sendo explorada ativamente?
O registro mostra que o CVE não está listado no catálogo KEV da CISA, e nenhuma exploração ativa confirmada aparece nas fontes consultadas.
Esta análise foi redigida com auxílio de IA a partir de dados verificados das fontes e checada automaticamente contra eles.