← voltar
CVE-2015-1635criticalsob ataqueCWE-94

CVE-2015-1635

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 9.8epss 100%
da publicação à arma1 dias
Publicada no NVD14 de abr.
1ª PoC+1d
CISA KEV+2494d
probabilidade de exploração
100%top 1% das CVEs
exploração observada
simCISA + VulnCheck
30 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-08-10

Apply updates per vendor instructions.

Resumo

CVE-2015-1635 (MS15-034) é uma falha de overflow no HTTP.sys, o driver de modo kernel do Windows que processa requisições HTTP para IIS e qualquer outro serviço construído sobre essa pilha. Um único request malformado, sem autenticação, pode derrubar o sistema com BSOD de forma confirmada publicamente; a execução remota de código em contexto SYSTEM é a caracterização da Microsoft, mas nenhum PoC público demonstrou isso — o que existe e circula é negação de serviço. Está no catálogo KEV da CISA por exploração ativa confirmada, apesar de ser uma vulnerabilidade de 2015.

Detalhamento técnico

O problema está no parsing do cabeçalho HTTP Range pelo HTTP.sys, o driver kernel-mode que processa requisições HTTP antes de entregá-las ao IIS ou a qualquer aplicação que use a pilha HTTP nativa do Windows. Ao calcular o intervalo de bytes solicitado, o código soma valores do cabeçalho Range usando aritmética de 64 bits sem validar limites — um valor próximo de 18446744073709551615 (2^64-1) provoca overflow/underflow na rotina interna HTTP!RtlULongLongAdd, conforme identificado por pesquisadores que dissecaram o binário corrigido.

O atacante controla integralmente o valor do cabeçalho Range enviado na requisição HTTP. Como o parsing ocorre em modo kernel — não em modo usuário, como a maioria das falhas de aplicação web — um erro de aritmética ali tem potencial para corromper memória do kernel, e não apenas do processo do IIS. Isso justifica a classificação Critical/RCE da Microsoft mesmo sem prova pública de execução de código.

A pré-condição prática relevante é o cache em modo kernel do IIS estar habilitado — comportamento padrão em muitas instalações — porque o caminho de código vulnerável no processamento de Range é exercitado quando há tentativa de servir conteúdo estático a partir do cache do kernel. A Microsoft não listou fatores mitigantes adicionais no boletim.

Como é explorada

O vetor é uma requisição HTTP direta ao serviço afetado, sem necessidade de autenticação, sem interação do usuário e sem qualquer pré-requisito de rede além de acesso à porta onde o HTTP.sys está escutando (normalmente 80/443 via IIS). Os PoCs públicos (exploit-db 36773 e 36776) seguem o mesmo padrão: uma requisição inicial a um recurso estático válido (ex.: iisstart.htm) para forçar o cache, seguida de uma segunda requisição com cabeçalho Range contendo um valor de byte final gigantesco, próximo do limite de 64 bits sem sinal.

O resultado documentado e verificável desses exploits públicos é o crash do servidor (BSOD) — negação de serviço, repetível remotamente e sem credenciais. A Microsoft afirma que a falha permite execução de código arbitrário no contexto da conta System, dado que a corrupção ocorre em modo kernel, mas essa capacidade não foi demonstrada publicamente em nenhum exploit conhecido; trate a alegação de RCE como não comprovada em PoC aberto, embora plausível dado o CVSS 9.8 atribuído e a inclusão no KEV da CISA.

A presença de módulo Metasploit e template Nuclei tornou a varredura e a exploração de DoS triviais de automatizar, o que explica a exploração ativa registrada anos após a divulgação — sistemas Windows Server 2008 R2/2012 sem patch continuam expostos a crashes remotos triviais, mesmo sem confirmação de RCE.

Versões

Afetadas
Windows 7 SP1 (32-bit e x64), Windows Server 2008 R2 SP1 (x64 e Itanium), Windows 8 (32-bit e x64), Windows 8.1 (32-bit e x64), Windows Server 2012, Windows Server 2012 R2 — incluindo as instalações Server Core desses dois últimos.
Corrigidas em
Corrigido pela atualização KB3042553, distribuída no boletim MS15-034 (14/04/2015), aplicável a todas as edições listadas em versions_affected.

Como se proteger

A correção oficial é o boletim MS15-034 (KB3042553), aplicável a Windows 7 SP1, Windows Server 2008 R2 SP1, Windows 8, Windows 8.1, Windows Server 2012 e Windows Server 2012 R2 (incluindo instalações Server Core). Não há patch separado por SKU listado além desse KB; a Microsoft não indica versões subsequentes de HTTP.sys com numeração própria — a correção é distribuída via Windows Update/KB.

Se a atualização não puder ser aplicada imediatamente, o único workaround publicado pela própria Microsoft é desabilitar o cache em modo kernel do IIS. Isso reduz a superfície porque o caminho de código vulnerável do Range é exercitado no contexto desse cache, mas tem custo real de performance — o servimento de conteúdo estático passa a depender de cache em modo usuário, mais lento sob carga.

Filtrar ou normalizar o cabeçalho Range em um proxy reverso ou WAF antes que a requisição chegue ao HTTP.sys é um controle compensatório técnico razoável (bloquear valores de range fora de limites plausíveis de tamanho de arquivo), mas não é uma mitigação validada pela Microsoft — é redução de exposição, não correção. Não existe indicação de que atualizar apenas o IIS, sem o patch de sistema operacional, resolva o problema: a falha está no driver de kernel, não no IIS em si.

Como detectar

Requisições HTTP com cabeçalho Range contendo valores numéricos extremos, próximos de 18446744073709551615 (2^64-1) — como no padrão 'Range: bytes=0-18446744073709551615' ou variações com offset inicial diferente — são o indicador mais direto de tentativa de exploração, e podem ser buscadas em logs de proxy, IIS ou captura de tráfego. Um sinal indireto é crash inesperado do sistema com bugcheck do kernel (BSOD) sem causa aparente em servidor web Windows nas versões afetadas, especialmente se precedido por tais requisições nos logs de acesso.

Não há assinatura única e confiável para diferenciar tentativa de DoS de eventual tentativa de RCE, já que ambas usam o mesmo vetor (cabeçalho Range malformado); a diferença estaria no efeito observado no host, não no payload de rede.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
HTTP.sys in Microsoft Windows 7 SP1, Windows Server 2008 R2 SP1, Windows 8, Windows 8.1, and Windows Server 2012 Gold and R2 allows remote attackers to execute arbitrary code via crafted HTTP requests, aka "HTTP.sys Remote Code Execution Vulnerability."
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Produtos afetados
n/a · n/a
PoCs públicas encontradas30
exploitdbwww.exploit-db.com/exploits/36776não verificadoexploitdbwww.exploit-db.com/exploits/36773não verificadogithubgithub.com/technion/erlvulnscan10githubgithub.com/aedoo/CVE-2015-1635-POC9githubgithub.com/Zx7ffa4512-Python/Project-CVE-2015-16352githubgithub.com/h3x0v3rl0rd/CVE-2015-1635-POC2githubgithub.com/w01ke/CVE-2015-1635-POC1githubgithub.com/Cappricio-Securities/CVE-2015-16351githubgithub.com/bongbongco/MS15-0341githubgithub.com/hedgecore/HTTPsys0githubgithub.com/moeinmiadi/CVE-2015-1635_PoC0githubgithub.com/u0pattern/Remove-IIS-RIIS0githubgithub.com/SkinAir/ms15-034-Scan0githubgithub.com/wiredaem0n/chk-ms15-0340githubgithub.com/h3x0v3rl0rd/CVE-2015-16350vulncheckvulncheck.com/xdb/f333a38f931anão verificadovulncheckvulncheck.com/xdb/7690005e3e24não verificadovulncheckvulncheck.com/xdb/693e42549523não verificadovulncheckvulncheck.com/xdb/2d56398584adnão verificadovulncheckvulncheck.com/xdb/215deead4210não verificadovulncheckvulncheck.com/xdb/640f8e881740não verificadovulncheckvulncheck.com/xdb/df55a69b1021não verificadovulncheckvulncheck.com/xdb/bd16f7896930não verificadovulncheckvulncheck.com/xdb/55628ec20b97não verificadovulncheckvulncheck.com/xdb/58a3b1e81ee2não verificadovulncheckvulncheck.com/xdb/4d00daf97977não verificadovulncheckvulncheck.com/xdb/661c0f964319não verificadocve_referencepacketstormsecurity.com/files/131463/Microsoft-Windows-HTTP.sys-Proof-Of-Concept.htmlnão verificadocve_referencewww.exploit-db.com/exploits/36773/não verificadocve_referencewww.exploit-db.com/exploits/36776/não verificado
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.