PT-2026-7871 · Unknown · Frankenphp
CVSS v4.0
8.7
Alta
| Vetor | AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Nome do Software Vulnerável e Versões Afetadas
Versões do FrankenPHP anteriores a 1.11.2
Descrição
O FrankenPHP, quando executado no modo worker, não redefine corretamente a superglobal
$ SESSION entre as requisições. Isso permite que uma requisição subsequente processada pelo mesmo worker acesse os dados $ SESSION da requisição anterior, potencialmente pertencentes a um usuário diferente, antes que session start() seja chamado. O problema surge porque $ SESSION é armazenado na tabela de símbolos do Zend Engine e não é explicitamente removido pela lógica de redefinição do FrankenPHP. Isso resulta em um vazamento de dados entre requisições, potencialmente expondo informações sensíveis como tokens de autenticação, IDs de usuário e PII (Informações Pessoais Identificáveis). A vulnerabilidade afeta aplicações que leem $ SESSION antes de chamar session start(). Uma prova de conceito demonstra que uma requisição do Cliente A definindo dados de sessão pode ser acessada pelo Cliente B sem que uma nova sessão seja iniciada.Recomendações
Versões anteriores a 1.11.2 devem ser atualizadas para a versão 1.11.2 ou posterior. Como solução temporária, assegure-se de que
session start() seja chamado imediatamente no ponto de entrada do seu script worker. Alternativamente, faça unset de $ SESSION manualmente no início do loop do worker, antes de processar a requisição.Exploit
Correção
Insufficient Session Expiration
Improper Privilege Management
Session Fixation
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Frankenphp