Atualize python3.12-urllib3 no Rocky Linux 8 para corrigir CVE-2026-44431 (vazamento de headers) e CVE-2026-44432 (DoS por descompressão). Guia técnico completo com comandos.
Em 1º de julho de 2026, a Rocky Linux publicou o RLSA-2026:32992, um aviso de segurança de severidade Important para o pacote python3.12-urllib3.
Este guia aborda a atualização deste componente crítico, presente em inúmeras aplicações que consomem APIs HTTP, desde microsserviços até ferramentas de automação com requests ou boto3.
Duas vulnerabilidades foram corrigidas:
Ambas são corrigidas na versão 2.7.0 do urllib3. A Rocky Linux backportou os patches para a versão 1.26.19-3.el8_10.
Pré-requisitos
Antes de iniciar, verifique:
Sistema: Rocky Linux 8 (qualquer subversão). Confirme com:
$ cat /etc/rocky-release Rocky Linux release 8.10 (Green Obsidian)
Pacote instalado: O pacote afetado é python3.12-urllib3. Verifique a versão atual:
$ rpm -q python3.12-urllib3 python3.12-urllib3-1.26.19-1.el8_10.noarch
Se retornar package python3.12-urllib3 is not installed, este aviso não se aplica ao seu ambiente.
Acesso root ou sudo: Necessário para instalação de pacotes.
Repositórios atualizados: Certifique-se de que os repositórios base e updates estão configurados:
$ dnf repolist repo id repo name baseos Rocky Linux 8 - BaseOS appstream Rocky Linux 8 - AppStream
Passo a Passo
1. Verificação do Estado Atual
Antes de qualquer alteração, documente o estado atual do sistema para fins de auditoria e rollback:
$ rpm -qa | grep -E "urllib3|python3.12" | sort > ~/urllib3_pre_update.txt $ dnf history list | head -5
Por que fazer isso ? Em ambientes de produção, ter um registro do estado pré-atualização é essencial para troubleshooting e para atender requisitos de conformidade (SOC2, ISO 27001).
2. Atualização do Pacote
A atualização é realizada via dnf:
$ sudo dnf update python3.12-urllib3
Saída esperada (exemplo):
Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Upgrading: python3.12-urllib3 noarch 1.26.19-3.el8_10 baseos 204 k Transaction Summary ================================================================================ Upgrade 1 Package Total download size: 204 k Is this ok [y/N]: y Downloading Packages: [####################] python3.12-urllib3-1.26.19-3.el8_10.noarch.rpm | 204 kB Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Upgrading : python3.12-urllib3-1.26.19-3.el8_10.noarch 1/2 Cleanup : python3.12-urllib3-1.26.19-1.el8_10.noarch 2/2 Verifying : python3.12-urllib3-1.26.19-3.el8_10.noarch 1/2 Verifying : python3.12-urllib3-1.26.19-1.el8_10.noarch 2/2 Upgraded: python3.12-urllib3-1.26.19-3.el8_10.noarch Complete!
Observação: O pacote é noarch (independente de arquitetura) e possui aproximadamente 204 KB.
3. Verificação Pós-Atualização
Confirme que a nova versão está instalada:
$ rpm -q python3.12-urllib3 python3.12-urllib3-1.26.19-3.el8_10.noarch
4. Reinicialização de Serviços Dependentes
O urllib3 é uma biblioteca Python – não há um serviço systemd para reiniciar. No entanto, qualquer aplicação ou serviço que utilize esta biblioteca em memória precisa ser reiniciado para carregar a nova versão.
Identifique processos que podem estar usando a biblioteca:
$ sudo lsof | grep -i urllib3 | head -20
Ou, mais pragmaticamente, reinicie os serviços que sabidamente dependem de Python e fazem requisições HTTP:
$ sudo systemctl restart nome-do-seu-servico
Em ambientes com múltiplos microsserviços, considere uma reinicialização gradual (rolling restart) para evitar indisponibilidade.
5. Validação da Correção
Para validar que a vulnerabilidade CVE-2026-44432 foi corrigida, pode-se testar o comportamento de descompressão com uma resposta comprimida maliciosa (ambiente de teste, não produção).
A correção está no backport para a versão 1.26.19-3, que inclui os patches do upstream 2.7.0.
Para o CVE-2026-44431, verifique se o código da sua aplicação utiliza o ProxyManager com assert_same_host=False – este é um padrão de uso incomum; a maioria das aplicações não é afetada por este vetor específico.
Troubleshooting
Problema Comum: "Erro de dependência" ao atualizar
Cenário: Ao executar o dnf update python3.12-urllib3, o sistema retorna:
Error: Problem: package python3.12-urllib3-1.26.19-3.el8_10.noarch requires python3.12, but none of the providers can be installed
Causa: O pacote python3.12-urllib3 depende do Python 3.12, que pode não estar instalado ou pode ter sido removido acidentalmente.
Solução:
1. Verifique se o Python 3.12 está instalado:
$ rpm -q python3.12 python3.12-3.12.1-1.el8_10.x86_64
2. Se não estiver, instale-o:
$ sudo dnf install python3.12
3. Em seguida, prossiga com a atualização do urllib3.
Por que isso acontece? O pacote python3.12-urllib3 é construído especificamente para a versão 3.12 do Python, que é a versão padrão no Rocky Linux 8.10. Em versões mais antigas do Rocky 8, pode ser necessário habilitar o AppStream ou o módulo python 3.12:
$ sudo dnf module enable python3.12 $ sudo dnf install python3.12
Armadilha Comum (Common Pitfall)
"Atualizei o pacote, mas minha aplicação continua vulnerável"
Iniciantes frequentemente assumem que atualizar o pacote RPM é suficiente para proteger a aplicação. Isso é falso quando a aplicação utiliza uma versão embarcada (vendored) do urllib3.
Ferramentas como pip e requests podem ter suas próprias cópias do urllib3 no diretório site-packages.
O pacote RPM instala a biblioteca no sistema (/usr/lib/python3.12/site-packages/urllib3), mas se sua aplicação usa um virtualenv ou container com dependências congeladas, a atualização do RPM não afeta essas instalações isoladas.
Solução:
Em virtualenvs: ative o ambiente e atualize com pip:
$ source /path/to/venv/bin/activate $ pip install --upgrade urllib3
Em containers: reconstrua a imagem com a nova versão da dependência.
Verifique qual urllib3 sua aplicação está realmente carregando:
$ python3.12 -c "import urllib3; print(urllib3.__version__); print(urllib3.__file__)" 1.26.19 /usr/lib/python3.12/site-packages/urllib3/__init__.py
Conclusão
O RLSA-2026:32992 corrige duas vulnerabilidades de severidade Important no python3.12-urllib3 para Rocky Linux 8:
- CVE-2026-44431: vazamento de headers sensíveis em redirecionamentos via ProxyManager.
- CVE-2026-44432: DoS por descompressão excessiva (amplificação de dados).
Recomendações finais:
1. Aplique a atualização em todos os sistemas Rocky Linux 8 que utilizam Python 3.12 para requisições HTTP. 2. Reinicie todos os serviços que carregam a biblioteca em memória.
3. Valide ambientes isolados (virtualenvs, containers) – a atualização do RPM não os cobre automaticamente.
4. Monitore os logs e o consumo de recursos após a atualização para detectar regressões.
A manutenção proativa de bibliotecas HTTP é fundamental para a segurança de qualquer infraestrutura moderna.
Esta atualização, embora pequena em tamanho, elimina dois vetores de ataque que poderiam comprometer dados sensíveis ou derrubar serviços com uma única requisição maliciosa.

Nenhum comentário:
Postar um comentário