← back
CVE-2015-1635criticalunder attackCWE-94

CVE-2015-1635

100Vexday Risk Score

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

ssvc Actcvss 9.8epss 100%
from disclosure to weapon1 days
Published on NVDApr 14
1st PoC+1d
CISA KEV+2494d
exploitation probability
100%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
30 public exploit(s)
Action required by CISAfederal deadline: 2022-08-10

Apply updates per vendor instructions.

Summary

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.

Technical detail

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.

How it’s exploited

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.

Versions

Affected
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.
Fixed in
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.

How to protect

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.

How to detect

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.

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.
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
Affected products
n/a · n/a
public PoCs found30
exploitdbwww.exploit-db.com/exploits/36776unverifiedexploitdbwww.exploit-db.com/exploits/36773unverifiedgithubgithub.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/f333a38f931aunverifiedvulncheckvulncheck.com/xdb/7690005e3e24unverifiedvulncheckvulncheck.com/xdb/693e42549523unverifiedvulncheckvulncheck.com/xdb/2d56398584adunverifiedvulncheckvulncheck.com/xdb/215deead4210unverifiedvulncheckvulncheck.com/xdb/640f8e881740unverifiedvulncheckvulncheck.com/xdb/df55a69b1021unverifiedvulncheckvulncheck.com/xdb/bd16f7896930unverifiedvulncheckvulncheck.com/xdb/55628ec20b97unverifiedvulncheckvulncheck.com/xdb/58a3b1e81ee2unverifiedvulncheckvulncheck.com/xdb/4d00daf97977unverifiedvulncheckvulncheck.com/xdb/661c0f964319unverifiedcve_referencepacketstormsecurity.com/files/131463/Microsoft-Windows-HTTP.sys-Proof-Of-Concept.htmlunverifiedcve_referencewww.exploit-db.com/exploits/36773/unverifiedcve_referencewww.exploit-db.com/exploits/36776/unverified
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.