
CVE-2026-109618/109619 Pesquisa de Exploração do session.upload_progress do PHP — POC e Análise
Pesquisa de segurança independente sobre as vulnerabilidades críticas de session.upload_progress do PHP (CVSS v4.0 9.2).
Autor: Qi Deng (@ikow)
Data: 2026-10-21
Análise completa: qideng.substack.com
Duas vulnerabilidades críticas de RCE pré-autenticação no manipulador session.upload_progress do núcleo do PHP, afetando o PHP 5.4.0 até 8.5.x. Este repositório contém POCs de verificação e configuração de laboratório para testes de segurança autorizados.
| Cadeia | Tipo | Condições | Verificado |
|---|---|---|---|
| Injeção de Arquivo de Sessão + LFI | Bug de lógica | upload_progress=On (padrão) + LFI na aplicação | ✅ RCE |
| UAF em var_destroy → Sobrescrita de Manipulador | Corrupção de memória | unserialize() + /proc/self/mem | ✅ ASAN + RCE |
Incompatibilidade de Manipulador → __destruct | Desserialização | Incompatibilidade de manipulador entre diretórios + gadget POP | ✅ RCE |
session.use_only_cookies (PR #22113)__destruct de var_destroy — heap-use-after-free confirmado pelo ASANPS(serializer) não é redefinido no RSHUTDOWN — vazamento de serializador entre requisições no FPM__destruct é acionado em FALHA de decodificação — injeção de objeto via incompatibilidade de manipulador + dados finaispoc/
verify_session_injection.py — Verifica injeção de nome de arquivo nos arquivos de sessão
verify_uaf_asan.php — Aciona heap-use-after-free do ASAN (var_destroy)
verify_handler_mismatch.py — Verifica incompatibilidade de manipulador → desserialização de objeto
lab/
docker-compose.yml — Ambiente de laboratório PHP 8.2.34 FPM + nginx
Dockerfile — Build do PHP vulnerável
php.ini — Configuração do laboratório
setup.sh — Configuração do laboratório em um clique
docs/
ANALYSIS.md — Análise técnica completa
# Start the lab
cd lab && ./setup.sh
# Verify session injection
python3 poc/verify_session_injection.py --target http://127.0.0.1:18080
# Verify UAF (requires ASAN build)
docker exec php-asan-lab php poc/verify_uaf_asan.php
# Verify handler mismatch
python3 poc/verify_handler_mismatch.py --target http://127.0.0.1:18080
session.upload_progress); Immediate mitigation (does NOT fix all attack paths)
session.upload_progress.enabled = Off
session.use_only_cookies = On
Esta pesquisa destina-se exclusivamente a testes de segurança autorizados e fins educacionais. Não a utilize contra sistemas que não lhe pertencem ou para os quais não possui autorização explícita de teste.
MIT