← back
CVE-2020-0796criticalunder attackransomwareCWE-119

CVE-2020-0796

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 10epss 100%
from disclosure to weapon0 days
Published on NVDMar 12
1st PoCNov 19
metasploit+1d
CISA KEV+700d
exploitation probability
100%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
158 public exploit(s)
Action required by CISAfederal deadline: 2022-08-10

Apply updates per vendor instructions.

Summary

SMBGhost é uma falha crítica no driver de kernel do servidor SMBv3.1.1 do Windows (srv2.sys), causada por um erro no cálculo do tamanho de buffer ao processar mensagens comprimidas do protocolo. Afeta apenas as builds 1903 e 1909 do Windows 10 e do Windows Server (Server Core) — não o restante do parque Windows —, mas nesses ramos permite execução de código sem autenticação, tanto contra um servidor SMB exposto quanto contra um cliente que se conecta a um servidor malicioso. O CVSS 10.0 reflete corretamente a gravidade técnica; a limitação real de impacto é o escopo estreito de versões afetadas.

Technical detail

A falha está na forma como o driver srv2.sys (componente servidor do SMBv3) e o cliente SMBv3 tratam o recurso de compressão introduzido no SMB 3.1.1. Ao processar um cabeçalho de mensagem comprimida, o código lê o campo OriginalCompressedSegmentSize enviado pelo peer e usa esse valor, sem validação adequada, para calcular o tamanho do buffer de descompressão. Um valor manipulado provoca um integer overflow (CWE-190) que resulta em alocação de buffer menor que o necessário, levando a um buffer overflow no espaço de kernel (CWE-122/CWE-787) quando os dados descomprimidos são copiados.

O atacante controla o campo de tamanho declarado e o conteúdo do payload comprimido enviado na negociação/transporte da mensagem SMB3. Como o processamento ocorre em kernel-mode antes de qualquer autenticação de sessão SMB, a corrupção de memória acontece em contexto privilegiado — daí a nota de exploração 'pré-autenticação'.

Existe um vetor duplo: servidor (um cliente malicioso ataca uma máquina Windows vulnerável que expõe SMB na porta 445) e cliente (um servidor SMB malicioso controlado pelo atacante ataca um cliente Windows vulnerável que se conecta a ele, por exemplo via montagem de compartilhamento). A vulnerabilidade correlata CVE-2020-1206 (SMBleed), no mesmo caminho de código de compressão, permite leitura de memória de kernel e foi combinada por pesquisadores com o SMBGhost (cadeia 'SMBleedingGhost') para obter RCE mais confiável, contornando mitigações como KASLR.

How it’s exploited

As primeiras provas de conceito públicas (CoronaBlue e variantes) produziam apenas negação de serviço — BSOD por corrupção de memória no kernel —, e essa continua sendo a forma mais simples e confiável de explorar a falha remotamente contra a porta TCP 445 sem qualquer autenticação. A escalada para execução de código arbitrário em kernel é significativamente mais complexa: exige controle preciso do layout de heap do kernel e, na prática, foi demonstrada de forma mais robusta combinando o SMBGhost com o vazamento de memória do SMBleed (CVE-2020-1206) para vencer proteções de mitigação de exploração.

O vetor mais comumente visto em campo e em módulos de teste (incluindo Metasploit) é a negação de serviço contra hosts com SMB exposto à rede — cenário típico de máquinas Windows 10/Server 1903/1909 acessíveis pela porta 445, seja na rede interna, seja, em configurações mal seguras, diretamente na internet. Não é necessária credencial nem interação do usuário (UI:N) para o vetor servidor; para o vetor cliente, basta a máquina vulnerável se conectar a um compartilhamento SMB controlado pelo atacante.

A CISA incluiu a CVE-2020-0796 no catálogo KEV por exploração confirmada em ambiente real, e a disponibilidade de exploit público, módulo Metasploit e templates de scanner (Nuclei) tornou a varredura e a tentativa de exploração triviais de automatizar assim que o patch saiu — inclusive antes da divulgação oficial completa, já que detalhes da falha vazaram brevemente em advisories de terceiros antes do Patch Tuesday de março de 2020.

Versions

Affected
Microsoft Windows 10 Version 1903 (32-bit, ARM64, x64); Microsoft Windows 10 Version 1909 (32-bit, ARM64, x64); Microsoft Windows Server, version 1903 (Server Core installation); Microsoft Windows Server, version 1909 (Server Core installation).
Fixed in
Atualização de segurança fora de banda da Microsoft para os builds 1903 e 1909, distribuída a partir de 12 de março de 2020 (ADV200005 / KB4551762). Versões do Windows fora desses dois ramos (anteriores ao 1903 ou posteriores ao 1909) não são afetadas por esta CVE específica.

How to protect

A correção definitiva é aplicar a atualização de segurança da Microsoft para os ramos afetados (Windows 10 1903/1909 e Windows Server 1903/1909 Server Core), lançada fora do ciclo normal em 12 de março de 2020 como parte do ADV200005/patch associado à KB4551762. Não há correção para versões anteriores ou posteriores do Windows porque elas simplesmente não contêm o código de compressão SMB 3.1.1 introduzido nesses builds — o problema é específico dessas duas versões.

Se a atualização não puder ser aplicada imediatamente, a Microsoft publicou um paliativo oficial: desabilitar a compressão SMBv3 via registro (chave em Services\LanmanServer\Parameters, valor DisableCompression). Isso neutraliza o vetor servidor, pois impede o processamento do caminho de código vulnerável na recepção de mensagens comprimidas, mas não protege o vetor cliente — uma máquina vulnerável ainda pode ser atacada ao se conectar a um servidor SMB malicioso. Bloquear a porta TCP 445 de entrada e saída no perímetro de rede reduz a exposição ao vetor servidor pela internet, mas não protege contra ataques originados dentro da rede interna nem contra o vetor cliente.

Não funciona como mitigação: apenas manter firewall pessoal do Windows ativo sem bloquear explicitamente 445, ou confiar em segmentação de rede que ainda permita tráfego SMB lateral entre estações — o histórico de exploração do EternalBlue mostrou que esse tipo de suposição falha na prática. Antivírus e EDR não bloqueiam de forma confiável a corrupção de memória em kernel antes que ela ocorra; detectam, na melhor hipótese, o comportamento pós-exploração.

How to detect

Em tráfego de rede, o indício é a presença de mensagens SMB2 com o flag de compressão habilitado no header (SMB2_COMPRESSION_TRANSFORM) e valores anômalos ou inconsistentes no campo de tamanho original declarado (OriginalCompressedSegmentSize) trafegando na porta TCP 445 — sensores de rede e IDS/IPS com assinaturas para SMBGhost focam nesse padrão. Em nível de host, sinais de exploração de DoS aparecem como crash/BSOD do processo do driver srv2.sys nos logs de sistema e no Windows Error Reporting, com referência a falha em ntfs.sys/srv2.sys ou a um bug check de corrupção de memória.

Não há assinatura única e confiável para distinguir exploração de RCE bem-sucedida de simples tentativa de DoS a partir apenas de logs padrão do Windows — a confirmação de comprometimento normalmente exige análise forense de memória/kernel após um crash suspeito, já que o overflow ocorre antes de qualquer autenticação e não deixa rastro nos logs de aplicação SMB.

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.
A remote code execution vulnerability exists in the way that the Microsoft Server Message Block 3.1.1 (SMBv3) protocol handles certain requests, aka 'Windows SMBv3 Client/Server Remote Code Execution Vulnerability'.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
public PoCs found158
exploitdbwww.exploit-db.com/exploits/48216unverifiedexploitdbwww.exploit-db.com/exploits/48267unverifiedexploitdbwww.exploit-db.com/exploits/48537unverifiedgithubgithub.com/danigargu/CVE-2020-07961358githubgithub.com/ly4k/SMBGhost719githubgithub.com/jamf/CVE-2020-0796-RCE-POC573githubgithub.com/Barriuso/SMBGhost_AutomateExploitation354githubgithub.com/eerykitty/CVE-2020-0796-PoC332githubgithub.com/jamf/CVE-2020-0796-LPE-POC244githubgithub.com/Rvn0xsy/CVE_2020_0796_CNA75githubgithub.com/rsmudge/CVE-2020-0796-BOF70githubgithub.com/jiansiting/CVE-2020-079664githubgithub.com/ioncodes/SMBGhost57githubgithub.com/k8gege/PyLadon51githubgithub.com/jamf/SMBGhost-SMBleed-scanner44githubgithub.com/eastmountyxz/CVE-2020-0796-SMB33githubgithub.com/T13nn3s/CVE-2020-079628githubgithub.com/maxpl0it/Unauthenticated-CVE-2020-0796-PoC22githubgithub.com/Almorabea/SMBGhost-LPE-Metasploit-Module20githubgithub.com/gabimarti/SMBScanner19githubgithub.com/0x25bit/CVE-2020-0796-PoC18githubgithub.com/f1tz/CVE-2020-0796-LPE-EXP17githubgithub.com/ButrintKomoni/cve-2020-079617githubgithub.com/GuoKerS/aioScan_CVE-2020-079615githubgithub.com/dickens88/cve-2020-0796-scanner14githubgithub.com/w1ld3r/SMBGhost_Scanner14githubgithub.com/joaozietolie/CVE-2020-0796-Checker14githubgithub.com/thelostworldFree/CVE-2020-079611githubgithub.com/jiansiting/CVE-2020-0796-Scanner9githubgithub.com/technion/DisableSMBCompression9githubgithub.com/0xeb-bp/cve-2020-07967githubgithub.com/dungnm24/CVE-2020-07966githubgithub.com/orangmuda/CVE-2020-07965githubgithub.com/vysecurity/CVE-2020-07965githubgithub.com/tango-j/CVE-2020-07964githubgithub.com/wneessen/SMBCompScan4githubgithub.com/codewithpradhan/SMBGhost-CVE-2020-0796-3githubgithub.com/sujitawake/smbghost3githubgithub.com/exp-sky/CVE-2020-07963githubgithub.com/Jagadeesh7532/-CVE-2020-0796-SMBGhost-Windows-10-SMBv3-Remote-Code-Execution-Vulnerability2githubgithub.com/Anonimo501/SMBGhost_CVE-2020-0796_checker2githubgithub.com/TinToSer/CVE-2020-0796-LPE2githubgithub.com/laolisafe/CVE-2020-07962githubgithub.com/DannyRavi/nmap-scripts2githubgithub.com/MasterSploit/LPE---CVE-2020-07962githubgithub.com/F6JO/CVE-2020-0796-Batch-scanning1githubgithub.com/datntsec/CVE-2020-07961githubgithub.com/1stPeak/CVE-2020-0796-Scanner1githubgithub.com/OldDream666/cve-2020-07961githubgithub.com/SEHandler/CVE-2020-07961githubgithub.com/arzuozkan/CVE-2020-07961githubgithub.com/LabDookhtegan/CVE-2020-0796-EXP1githubgithub.com/awareseven/eternalghosttest1githubgithub.com/ran-sama/CVE-2020-07961githubgithub.com/Dhoomralochana/Scanners-for-CVE-2020-0796-Testing1githubgithub.com/AdamSonov/smbGhostCVE-2020-07961githubgithub.com/BinaryShadow94/SMBv3.1.1-scan---CVE-2020-07961githubgithub.com/bsec404/CVE-2020-07961githubgithub.com/netscylla/SMBGhost1githubgithub.com/cybermads/CVE-2020-07961githubgithub.com/julixsalas/CVE-2020-07961githubgithub.com/cory-zajicek/CVE-2020-0796-DoS1githubgithub.com/kn6869610/CVE-2020-07960githubgithub.com/xax007/CVE-2020-0796-Scanner0githubgithub.com/UraSecTeam/smbee0githubgithub.com/Almorabea/SMBGhost-WorkaroundApplier0githubgithub.com/wsfengfan/CVE-2020-07960githubgithub.com/tripledd/cve-2020-0796-vuln0githubgithub.com/intelliroot-tech/cve-2020-0796-Scanner0githubgithub.com/section-c/CVE-2020-07960githubgithub.com/hungdnvp/POC-CVE-2020-07960githubgithub.com/z3ena/Exploiting-and-Mitigating-CVE-2020-0796-SMBGhost-and-Print-Spooler-Vulnerabilities0githubgithub.com/monjheta/CVE-2020-07960githubgithub.com/tdevworks/CVE-2020-0796-SMBGhost-Exploit-Demo0githubgithub.com/maqeel-git/CVE-2020-07960githubgithub.com/esmwaSpyware/DoS-PoC-for-CVE-2020-0796-SMBGhost-0githubgithub.com/nyambiblaise/Microsoft-Windows-SMBGhost-Vulnerability-Checker---CVE-2020-0796---SMBv3-RCE0githubgithub.com/thai1012/cve-2020-07960githubgithub.com/p4ncontomat3/smbghost0githubgithub.com/Justjeff211/conti-ransomware-writeup0githubgithub.com/bacth0san96/SMBGhostScanner0githubgithub.com/halsten/CVE-2020-07960githubgithub.com/ysyyrps123/CVE-2020-07960githubgithub.com/ysyyrps123/CVE-2020-0796-exp0githubgithub.com/1060275195/SMBGhost0githubgithub.com/AaronCaiii/CVE-2020-0796-POC0githubgithub.com/Opensitoo/cve-2020-07960githubgithub.com/Murasame-nc/CVE-2020-0796-LPE-POC0githubgithub.com/lisinan988/CVE-2020-0796-exp0githubgithub.com/vsai94/ECE9069_SMBGhost_Exploit_CVE-2020-0796-0githubgithub.com/TweatherQ/CVE-2020-07960githubgithub.com/krizzz07/CVE-2020-07960vulncheckvulncheck.com/xdb/d7d5d53f4beaunverifiedvulncheckvulncheck.com/xdb/3df354d72935unverifiedvulncheckvulncheck.com/xdb/33e62c3dd628unverifiedvulncheckvulncheck.com/xdb/216af6a16e50unverifiedvulncheckvulncheck.com/xdb/a788d7636e90unverifiedvulncheckvulncheck.com/xdb/0edf8728bb5funverifiedvulncheckvulncheck.com/xdb/5f415b7a9395unverifiedvulncheckvulncheck.com/xdb/04badb202b58unverifiedvulncheckvulncheck.com/xdb/d69aadafc43aunverifiedvulncheckvulncheck.com/xdb/b8b6072526a3unverifiedvulncheckvulncheck.com/xdb/ff75d491e221unverifiedvulncheckvulncheck.com/xdb/48181658a679unverifiedvulncheckvulncheck.com/xdb/fff5ddf87547unverifiedvulncheckvulncheck.com/xdb/14a46f453670unverifiedvulncheckvulncheck.com/xdb/2a4b6e1593ebunverifiedvulncheckvulncheck.com/xdb/0dcd49541f47unverifiedvulncheckvulncheck.com/xdb/4e6bc5ec8634unverifiedvulncheckvulncheck.com/xdb/5f4027f27daeunverifiedvulncheckvulncheck.com/xdb/a84af6033bbaunverifiedcve_referencepacketstormsecurity.com/files/156731/CoronaBlue-SMBGhost-Microsoft-Windows-10-SMB-3.1.1-Proof-Of-Concept.htmlunverifiedcve_referencepacketstormsecurity.com/files/156732/Microsoft-Windows-SMB-3.1.1-Remote-Code-Execution.htmlunverifiedcve_referencepacketstormsecurity.com/files/156980/Microsoft-Windows-10-SMB-3.1.1-Local-Privilege-Escalation.htmlunverifiedcve_referencepacketstormsecurity.com/files/157110/SMBv3-Compression-Buffer-Overflow.htmlunverifiedcve_referencepacketstormsecurity.com/files/157901/Microsoft-Windows-SMBGhost-Remote-Code-Execution.htmlunverifiedcve_referencepacketstormsecurity.com/files/158054/SMBleed-SMBGhost-Pre-Authentication-Remote-Code-Execution-Proof-Of-Concept.htmlunverifiedvulncheckvulncheck.com/xdb/1e6f8ca038f7unverifiedvulncheckvulncheck.com/xdb/673033cc1f2dunverifiedvulncheckvulncheck.com/xdb/9f1dbe33c767unverifiedvulncheckvulncheck.com/xdb/484b2a81c82eunverifiedvulncheckvulncheck.com/xdb/1f736df77952unverifiedvulncheckvulncheck.com/xdb/424a6065b5a6unverifiedvulncheckvulncheck.com/xdb/f1c35a49bda4unverifiedvulncheckvulncheck.com/xdb/c349096df32eunverifiedvulncheckvulncheck.com/xdb/405831a8e860unverifiedvulncheckvulncheck.com/xdb/92253f0cfed5unverifiedvulncheckvulncheck.com/xdb/5e7a0bf92c1aunverifiedvulncheckvulncheck.com/xdb/f25ef6c781a3unverifiedvulncheckvulncheck.com/xdb/33fb0416877cunverifiedvulncheckvulncheck.com/xdb/234a8c77ec20unverifiedvulncheckvulncheck.com/xdb/d44cedf42a97unverifiedvulncheckvulncheck.com/xdb/059158002b34unverifiedvulncheckvulncheck.com/xdb/19e081f7a0e0unverifiedvulncheckvulncheck.com/xdb/ac5de3e67dd5unverifiedvulncheckvulncheck.com/xdb/1fe25bc46b28unverifiedvulncheckvulncheck.com/xdb/28ef5a320ff6unverifiedvulncheckvulncheck.com/xdb/1433f57a34a7unverifiedvulncheckvulncheck.com/xdb/db287bfd1300unverifiedvulncheckvulncheck.com/xdb/002285bd34cfunverifiedvulncheckvulncheck.com/xdb/35944ecc6741unverifiedvulncheckvulncheck.com/xdb/c61e689a70b5unverifiedvulncheckvulncheck.com/xdb/1bd0e82ed8eeunverifiedvulncheckvulncheck.com/xdb/935c9e284cc4unverifiedvulncheckvulncheck.com/xdb/9e0eebcc0239unverifiedvulncheckvulncheck.com/xdb/8055bf519ef5unverifiedvulncheckvulncheck.com/xdb/189b546ce23dunverifiedvulncheckvulncheck.com/xdb/f8f7a66ca404unverifiedvulncheckvulncheck.com/xdb/cf4d2847f48aunverifiedvulncheckvulncheck.com/xdb/962a618f3543unverifiedvulncheckvulncheck.com/xdb/132b45db5c90unverifiedvulncheckvulncheck.com/xdb/df0832d0144eunverifiedvulncheckvulncheck.com/xdb/42d4e59819e1unverifiedvulncheckvulncheck.com/xdb/0783c8074cffunverifiedvulncheckvulncheck.com/xdb/17f7ca6e1bfaunverifiedvulncheckvulncheck.com/xdb/a08cd7c0ec40unverifiedvulncheckvulncheck.com/xdb/6d070666358aunverifiedvulncheckvulncheck.com/xdb/c489f75bf99dunverified
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.