Atualização crítica Firefox no Oracle Linux 8. Corrija 27 CVEs (sandbox escape, RCE) com comandos DNF, automação Ansible e troubleshooting. Leia já!
Em 22 de junho de 2026, a Oracle publicou o aviso de segurança ELSA-2026-27717 (originalmente identificado como ELISA-2026-27717), referente a uma atualização crítica do Firefox para o Oracle Linux 8.
Esta atualização eleva o Firefox para a versão 140.12.0-1.0.1.el8_10, corrigindo um total de 27 vulnerabilidades que abrangem desde memory safety bugs até sandbox escapes e bypass de same-origin policy.
A severidade foi classificada como "important" pela Oracle, com diversas CVEs recebendo impactos "high" ou "critical" segundo a classificação da Mozilla.
Esta não é uma atualização trivial — estamos falando de vulnerabilidades que permitem execução remota de código, bypass de sandbox e vazamento de informações sensíveis.
Para ambientes corporativos onde o Firefox é utilizado em estações de trabalho, terminais de atendimento ou como mecanismo de renderização em aplicações headless, a aplicação deste update deve ser tratada com prioridade máxima.
Pré-requisitos
1. Identificação do Sistema e Versão Atual
Antes de qualquer alteração, documente o estado atual do sistema:$ cat /etc/oracle-release Oracle Linux Server release 8.10
$ rpm -q firefox firefox-128.0.0-1.0.1.el8_10.x86_64
$ firefox --version Mozilla Firefox 128.0.0
Por que documentar? Em ambientes auditados, ter um registro do estado pré-atualização é essencial para rastreabilidade e para eventuais rollbacks. Guarde essa saída em um log.
2. Verificação de Pacotes Dependentes
O Firefox no Oracle Linux 8 depende criticamente do NSS (Network Security Services). A atualização 140.12.0-1.0.1 inclui ajustes específicos para integração com o NSS. Verifique a versão atual do NSS:
$ rpm -q nss nss-3.90.0-1.el8_10.x86_64
Se o NSS estiver desatualizado, o DNF resolverá as dependências automaticamente, mas é bom saber antecipadamente o que será atualizado.
3. Atualização via DNF
O método recomendado para sistemas Oracle Linux 8 é utilizar o DNF com o repositório ULN habilitado:
$ sudo dnf update firefox --enablerepo=ol8_UEKR7
Saída esperada:
Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Upgrading: firefox x86_64 140.12.0-1.0.1.el8_10 ol8_UEKR7 95 M Transaction Summary ================================================================================ Upgrade 1 Package Total download size: 95 M Is this ok [y/N]: y
Por que --enablerepo=ol8_UEKR7? O pacote Firefox ESR 140.12 está hospedado no repositório UEKR7 (Unbreakable Enterprise Kernel Release 7) da Oracle. Este repositório contém não apenas o kernel, mas também pacotes de usuário atualizados para a plataforma.
Após confirmar, o DNF fará o download e a instalação:
Downloading Packages: firefox-140.12.0-1.0.1.el8_10.x86_64.rpm 95 MB/s | 95 MB 00:01 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Upgrading : firefox-140.12.0-1.0.1.el8_10.x86_64 1/2 Cleanup : firefox-128.0.0-1.0.1.el8_10.x86_64 2/2 Running scriptlet: firefox-140.12.0-1.0.1.el8_10.x86_64 2/2 Verifying : firefox-140.12.0-1.0.1.el8_10.x86_64 1/2 Verifying : firefox-128.0.0-1.0.1.el8_10.x86_64 2/2 Upgraded: firefox-140.12.0-1.0.1.el8_10.x86_64 Complete!
4. Instalação Offline (SRPM)
http://oss.oracle.com/ol8/SRPMS-updates/firefox-140.12.0-1.0.1.el8_10.src.rpm [reference:11]
O procedimento offline envolve:
$ wget http://oss.oracle.com/ol8/SRPMS-updates/firefox-140.12.0-1.0.1.el8_10.src.rpm $ rpm -ivh firefox-140.12.0-1.0.1.el8_10.src.rpm $ cd ~/rpmbuild/SPECS/ $ rpmbuild -bb firefox.spec $ sudo rpm -Uvh ~/rpmbuild/RPMS/x86_64/firefox-140.12.0-1.0.1.el8_10.x86_64.rpm
Por que compilar localmente? Em ambientes com políticas de hardening, a instalação a partir de SRPM permite verificar assinaturas GPG, auditar patches e garantir que não há modificações não autorizadas no binário.
5. Verificação Pós-Instalação
Após a atualização, confirme a nova versão:
$ rpm -q firefox firefox-140.12.0-1.0.1.el8_10.x86_64
$ firefox --version Mozilla Firefox 140.12.0
Verifique a integridade do pacote:
$ rpm -V firefox
Se não houver saída, o pacote está íntegro. Qualquer saída indica arquivos modificados — o que pode ser um sinal de alerta.
6. Reinicialização do Firefox e Limpeza de Cache
O Firefox não requer reinicialização do sistema, mas processos em execução precisam ser reiniciados:
$ pkill -f firefox
Para ambientes com múltiplos usuários, identifique e mate processos por usuário:
$ ps aux | grep firefox | awk '{print $1}' | sort -u $ sudo pkill -u $USER -f firefox
Limpe o cache de extensões e o cache de compilação JIT para evitar problemas de compatibilidade:
$ rm -rf ~/.cache/mozilla/firefox/* $ rm -rf ~/.mozilla/firefox/*.default-release/startupCache/
Por que limpar o cache? A atualização inclui correções no JIT compiler (CVE-2026-12299) e no WebRender (CVE-2026-12289). Caches antigos podem conter código compilado com versões anteriores, potencialmente causando crashes ou comportamento inconsistente.
📘 Indicação de Leitura
Esse livro é um guia prático e abrangente sobre a segurança do sistema operacional Linux como um todo. O livro ensina a pensar como um atacante para fortalecer a defesa do servidor, abordando tópicos fundamentais como:
- Ferramentas de rede: Nmap, Netcat, knockd.
- Monitoramento: de arquivos e sistemas de arquivos.
- Defesas: contra malware e ataques DDoS.
- Descoberta de vulnerabilidades: como invasores encontram pontos fracos.
Eu ganho uma comissão quando você faz uma compra.
Principais Vulnerabilidades Corrigidas
Para fins de auditoria e documentação, eis o resumo das 27 CVEs corrigidas nesta atualização, agrupadas por tipo:
Memory Safety Bugs (Críticos)
CVE-2026-12290: Memory safety bug no Firefox ESR 140.12
CVE-2026-12298: Memory safety bug
CVE-2026-12305 a CVE-2026-12310: Memory safety bugs
CVE-2026-12312 a CVE-2026-12314: Memory safety bugs
CVE-2026-12327, CVE-2026-12328, CVE-2026-12329: Memory safety bugs
Sandbox Escapes
CVE-2026-12294: Sandbox escape no DOM: Workers component
CVE-2026-12295: Sandbox escape no DOM: Navigation component
CVE-2026-12296: Sandbox escape no Security: Process Sandboxing
CVE-2026-12297: Sandbox escape no Networking component
CVE-2026-12311: Information disclosure e sandbox escape
CVE-2026-12313: Information disclosure e sandbox escape
Bypass e Condições de Contorno
CVE-2026-12289: Privilege escalation no Graphics: WebRender
CVE-2026-12291: Use-after-free no Networking: HTTP
CVE-2026-12292: Incorrect boundary conditions no Web Audio
CVE-2026-12299: JIT miscompilation no DOM: Core & HTML
CVE-2026-12302: Mitigation bypass no DOM: Security
CVE-2026-12304: Same-origin policy bypass no Networking: Cookies
CVE-2026-12315: Mitigation bypass no DOM: Security
CVE-2026-12324: Incorrect boundary conditions no Graphics: CanvasWebGL
CVE-2026-12325: Denial-of-service no Graphics: ImageLib
CVE-2026-12330: Incorrect boundary conditions no Internationalization
Troubleshooting
Problema 1: Falha na Atualização com Conflito de Dependências
Sintoma:
Error: Problem: package firefox-140.12.0-1.0.1.el8_10.x86_64 requires nss >= 3.90.0, but none of the providers can be installed
Solução:
O Firefox 140.12.0 requer uma versão específica do NSS. Resolva com:
$ sudo dnf update nss --enablerepo=ol8_UEKR7 $ sudo dnf update firefox --enablerepo=ol8_UEKR7
Se o problema persistir, verifique se o repositório ULN está corretamente assinado:
$ sudo dnf repolist --enablerepo=ol8_UEKR7 -v | grep -i gpg
Problema 2: Firefox Não Inicia Após Atualização
Sintoma:
$ firefox XPCOMGlueLoad error for file /usr/lib64/firefox/libxul.so: libnss3.so: cannot open shared object file: No such file or directory
Solução:
O Firefox ESR 140.12 foi compilado contra uma versão específica do NSS. Verifique se o NSS foi atualizado corretamente:
$ rpm -q nss nss-3.90.0-1.el8_10.x86_64
Caso o NSS não tenha sido atualizado (por exemplo, em sistemas com versionlock ativo):
$ sudo dnf versionlock list | grep nss # Se houver lock, remova: $ sudo dnf versionlock delete nss $ sudo dnf update nss firefox --enablerepo=ol8_UEKR7
Após a atualização do NSS, reinicie o Firefox. Se o problema persistir, recrie o link simbólico:
$ sudo ldconfig
$ firefox --safe-mode2 Armadilhas Comuns para Iniciantes
Armadilha 1: Ignorar a Reinicialização dos Processos em Execução
Iniciantes frequentemente atualizam o pacote e assumem que o Firefox já está seguro. Isso é falso. O binário em memória continua sendo a versão antiga e vulnerável até que o processo seja encerrado e reiniciado.
# ❌ ERRADO - O processo antigo continua rodando $ sudo dnf update firefox # "Pronto, atualizado!" # O Firefox ainda está rodando com a versão antiga em memória # ✅ CORRETO - Force o encerramento $ sudo pkill -f firefox $ firefox &
Por que isso é crítico? Vulnerabilidades como CVE-2026-12291 (use-after-free) e CVE-2026-12289 (privilège escalation) podem ser exploradas enquanto o processo antigo estiver em execução, mesmo que o binário em disco já tenha sido substituído.
Armadilha 2: Esquecer de Limpar os Caches de Compilação JIT
O Firefox mantém caches de código JIT (Just-In-Time) compilado para melhor performance. Após uma atualização que corrige o próprio JIT compiler (CVE-2026-12299), caches antigos podem conter código que referencia estruturas de memória que mudaram entre versões.
# ❌ ERRADO - Apenas atualizar o pacote $ sudo dnf update firefox $ firefox # Pode crashar ou ter comportamento indefinido # ✅ CORRETO - Limpar caches JIT e startup $ rm -rf ~/.cache/mozilla/firefox/*/cache2/ $ rm -rf ~/.mozilla/firefox/*.default-release/startupCache/ $ rm -rf ~/.mozilla/firefox/*.default-release/jit*
Em ambientes com múltiplos usuários, considere um script que itera sobre todos os diretórios home:
$ for user in $(ls /home); do sudo -u $user rm -rf /home/$user/.cache/mozilla/firefox/*/cache2/ sudo -u $user rm -rf /home/$user/.mozilla/firefox/*/startupCache/ done
Automação com Ansible
Para ambientes com múltiplos hosts, a automação é fundamental. Exemplo de playbook Ansible:
--- - name: Atualizar Firefox para ELSA-2026-27717 hosts: ol8_servers become: yes tasks: - name: Verificar versão atual do Firefox command: rpm -q firefox register: firefox_version changed_when: false - name: Atualizar Firefox via DNF dnf: name: firefox state: latest enablerepo: ol8_UEKR7 when: "'140.12.0' not in firefox_version.stdout" - name: Matar processos Firefox em execução command: pkill -f firefox ignore_errors: yes - name: Limpar caches JIT por usuário shell: | for user in $(ls /home); do sudo -u $user rm -rf /home/$user/.cache/mozilla/firefox/*/cache2/ sudo -u $user rm -rf /home/$user/.mozilla/firefox/*/startupCache/ done when: "'140.12.0' not in firefox_version.stdout" - name: Verificar instalação command: rpm -q firefox register: final_version changed_when: false - name: Alertar se versão incorreta fail: msg: "Firefox não foi atualizado para 140.12.0" when: "'140.12.0' not in final_version.stdout"
Conclusão
O aviso ELSA-2026-27717 aborda 27 vulnerabilidades no Firefox para Oracle Linux 8, incluindo memory safety bugs, sandbox escapes, bypass de same-origin policy e condições de contorno que podem levar à execução remota de código.
A atualização para firefox-140.12.0-1.0.1.el8_10 é mandatória para qualquer ambiente que utilize o Firefox, seja em estações de trabalho, terminais ou aplicações headless.
Os pontos críticos para uma atualização bem-sucedida são:
- Utilizar o repositório ULN correto (ol8_UEKR7) para obter o pacote oficial.
- Forçar o encerramento de todos os processos Firefox após a atualização — o binário em memória continua vulnerável até ser reiniciado.
- Limpar caches JIT e de inicialização para evitar crashes decorrentes de código compilado com versões anteriores.
- Verificar a integridade do pacote com rpm -V firefox e documentar a versão instalada.
A Oracle disponibiliza pacotes para x86_64 e aarch64, bem como o SRPM para instalações offline.
Para ambientes de larga escala, a automação via Ansible ou scripts shell é fortemente recomendada para garantir consistência em toda a frota.
Não postergue esta atualização.
Com CVEs que permitem sandbox escape e execução remota de código, cada dia sem a aplicação deste patch representa uma janela de exposição desnecessária para a infraestrutura.

Nenhum comentário:
Postar um comentário