← back
CVE-2020-6819highunder attackCWE-416

CVE-2020-6819

51Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA.

ssvc Actcvss 8.1epss 3.0%
from disclosure to weapon
Published on NVDApr 24
CISA KEV+558d
exploitation probability
3.0%top 13% of all CVEs
observed exploitation
yesCISA + VulnCheck
What the vendors declare (VEX)

Official vendor statements in CSAF/VEX format: whether their product is affected, already fixed, or ruled out — and why. These are the vendor's assertions, not Vexday's judgment.

Affected
1 product (2 components)
Red Hat Enterprise Linux 5
no_fix_planned: Out of support scope
Fixed
15 products (205 components)
Red Hat Enterprise Linux AppStream (v. 8) · Red Hat Enterprise Linux Desktop (v. 6) · Red Hat Enterprise Linux Server Optional (v. 6) · Red Hat Enterprise Linux Workstation (v. 6) · Red Hat Enterprise Linux Client (v. 7) · and others 10
Action required by CISAfederal deadline: 2022-05-03

Apply updates per vendor instructions.

Summary

Use-after-free na destruição do objeto nsDocShell do motor Gecko, explorável por uma página web maliciosa sem qualquer interação adicional da vítima além de visitá-la. A Mozilla confirmou exploração em ataques direcionados já no momento da divulgação (abril/2020), o que levou a CISA a incluir a falha no catálogo KEV. A alta complexidade de ataque (condição de corrida) explica por que, apesar do CVSS 8.1 e da exploração confirmada, ela não gerou uma onda massiva de exploração em campanhas genéricas — foi usada de forma cirúrgica.

Technical detail

A falha está em docshell/base/nsDocShell.cpp, no método SynchronizeLayoutHistoryState, chamado a partir de nsDocumentViewer::Close durante a destruição de nsDocumentViewer, que por sua vez é liberado no destructor de nsDocShell (~nsDocShell). O problema é classificado como CWE-362 (condição de corrida) que degenera em CWE-416 (use-after-free): sob certas sequências de eventos, o destructor de nsDocShell é executado enquanto outro fluxo do código ainda mantém uma referência a estruturas internas do docshell (como o histórico de layout), causando leitura de memória já liberada.

O relatório original (Bugzilla 1620818) veio de um crash detectado por AddressSanitizer/fuzzing, sem reprodutor determinístico à época — sinal de que o gatilho depende de timing específico do coletor de ciclos do Firefox (cycle collector / SnowWhiteKiller), que finaliza objetos nsDocShell de forma assíncrona. O atacante não controla diretamente ponteiros ou payloads; ele controla o conteúdo e comportamento da página (navegação, criação/destruição de contextos de documento) para tentar forçar a janela de corrida entre a liberação do content viewer e o acesso subsequente ao estado de histórico de layout.

A correção da Mozilla envolveu dois patches: um ajustando o tratamento correto do destructor para as variáveis-membro de nsDocShell, e outro corrigindo a liberação apropriada de nsDocShell::mContentViewer — ou seja, o fix foi estrutural na gestão de ciclo de vida desses objetos, não um simples null-check pontual.

How it’s exploited

Vetor: página web (ou e-mail HTML processado pelo motor Gecko, no caso do Thunderbird) que a vítima abre em um contexto de navegação. Não exige autenticação, privilégio elevado nem configuração não padrão — daí AV:N e UI:N no vetor CVSS. A complexidade de ataque é alta (AC:H) porque o atacante precisa induzir uma sequência de eventos de navegação/destruição de docshell que vença a corrida entre threads do processo de conteúdo; isso normalmente demanda um exploit de UAF construído com técnicas de heap grooming para tornar a corrida confiável, e adaptação por versão/build do Firefox.

A Mozilla declarou estar "ciente de ataques direcionados in the wild abusando desta falha", junto com a CVE-2020-6820 (UAF em ReadableStream), corrigida no mesmo advisory — ambas reportadas pelos mesmos pesquisadores (Francisco Alonso e Javier Marcos/JMPSec). O padrão — duas UAFs críticas corrigidas simultaneamente, exploração confirmada, patch fora do ciclo normal de release (74.0.1, ESR 68.6.1) — é característico de correção de emergência após detecção de uma campanha ativa, não de achado por bug bounty comum.

A CISA adicionou a CVE ao KEV apenas em 2021-11-03 (bem depois da divulgação original), com prazo de correção 2022-05-03, o que reflete o processo de catalogação retroativa da agência e não uma nova onda de exploração. Não há indicação pública de que o exploit tenha sido reaproveitado em campanhas amplas após a correção — o padrão descrito é de uso direcionado antes do patch.

Versions

Affected
Firefox anterior a 74.0.1; Firefox ESR anterior a 68.6.1; Thunderbird anterior a 68.7.0.
Fixed in
Firefox 74.0.1; Firefox ESR 68.6.1; Thunderbird 68.7.0 (refletido também no pacote Ubuntu thunderbird 1:68.7.0+build1-0ubuntu0.16.04.2 via USN-4335-1).

How to protect

A mitigação real é atualizar: Firefox para 74.0.1 ou superior, Firefox ESR para a linha 68.6.1 ou superior, e Thunderbird para 68.7.0 ou superior. Como o bug está no gerenciamento de memória interno do motor de navegação (docshell), não existe flag, preferência (about:config) ou configuração de rede que neutralize a condição de corrida — é falha de implementação em C++, não de política de segurança configurável.

Se a atualização imediata não for viável (parque grande, builds ESR corporativos em homologação), o único controle compensatório com efeito real é reduzir a exposição a conteúdo não confiável no motor vulnerável: isolar navegação a sites não confiáveis em outro navegador/processo já corrigido, ou restringir o uso do cliente vulnerável a ambientes sem acesso à web aberta. Isso não é uma mitigação documentada pelo fornecedor, é redução de superfície de ataque — trate como paliativo temporário, não como correção.

Não há mito relevante de "desabilitar JavaScript resolve" documentado pela Mozilla para esta CVE especificamente; a cadeia de destruição do docshell pode ser acionada por navegação comum entre documentos, não exclusivamente por script, então essa mitigação não tem confirmação de eficácia e não deve ser assumida como suficiente.

How to detect

Não há assinatura de rede ou payload característico a procurar — a exploração ocorre inteiramente client-side, dentro do processo de conteúdo do navegador/cliente de e-mail, sem tráfego distintivo além do acesso à página maliciosa em si (que pode ser indistinguível de navegação legítima). O sinal mais próximo disponível é comportamento anômalo do processo de conteúdo: crashes repetidos ou fechamento abrupto de abas/processos do Firefox/Thunderbird associados a sites ou mensagens específicas, especialmente em relatórios de crash (about:crashes) mencionando nsDocShell, SynchronizeLayoutHistoryState ou nsDocumentViewer::Close. Nenhuma fonte consultada disponibiliza IOCs, hashes ou domínios associados à campanha original de exploração direcionada.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
Under certain conditions, when running the nsDocShell destructor, a race condition can cause a use-after-free. We are aware of targeted attacks in the wild abusing this flaw. This vulnerability affects Thunderbird < 68.7.0, Firefox < 74.0.1, and Firefox ESR < 68.6.1.
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H