← back
CVE-2013-3900mediumunder attackCWE-347

WinVerifyTrust Signature Validation Vulnerability

75Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 5.5epss 45%
from disclosure to weapon2797 days
Published on NVDDec 11
1st PoC+2797d
CISA KEV+2952d
exploitation probability
45%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
15 public exploit(s)
Action required by CISAfederal deadline: 2022-07-10

Apply updates per vendor instructions.

Summary

A CVE-2013-3900 descreve uma falha na função WinVerifyTrust do Windows que permite anexar dados arbitrários a um arquivo executável (PE) validamente assinado sem invalidar a assinatura Authenticode. Isso deixa binários maliciosos com payload extra embutido passando por 'assinado e confiável', o que quebra controles que decidem confiança com base em assinatura digital. Não é uma RCE remota clássica: o impacto real é bypass de verificação de integridade/confiança, e ganhou relevância nova em 2022 quando foi usada ativamente em campanhas de malware, entrando no catálogo KEV da CISA quase 9 anos depois da publicação original.

Technical detail

O Authenticode assina apenas partes específicas de um arquivo PE conforme a especificação da Microsoft — cabeçalho, seções de código e recursos, mas não necessariamente o arquivo completo. A WinVerifyTrust (wintrust.dll), ao validar a assinatura, verifica o hash das regiões previstas pela especificação, mas historicamente não rejeitava dados extras anexados após o bloco de assinatura (padding/appended data). O CVE está catalogado sob CWE-20 (Improper Input Validation) pela CISA, refletindo que a verificação não trata corretamente entradas fora do formato esperado.

How it’s exploited

O atacante não precisa de acesso remoto à rede; precisa apenas conseguir modificar um arquivo PE já assinado — de qualquer editor confiável — anexando bytes extras (script, payload, dados de outro formato de arquivo) após a área coberta pela assinatura, e depois fazer a vítima executar ou instalar esse arquivo modificado. Como a assinatura permanece 'válida' aos olhos da WinVerifyTrust padrão, controles de segurança que confiam em binários assinados (allowlisting por assinatura, alguns AV/EDR) tratam o arquivo como legítimo, apesar do conteúdo malicioso anexado. O vetor CVSS (AV:L/PR:N/UI:R) reflete exatamente isso: execução local, sem privilégio prévio, mas com interação do usuário para rodar o arquivo trojanizado.

Versions

Affected
Todas as versões suportadas de Windows na época do MS13-098 (Windows XP SP3 até Windows Server 2012 R2, incluindo Windows RT). No republishing de 2022/2023, a MSRC lista como afetadas Windows 10 (versões 1507, 1607, 1809, 21H2, 22H2) e Windows 11 (21H2, 22H2, 22H3) no sentido de que o comportamento vulnerável (verificação frouxa) é o padrão de fábrica nessas versões, mesmo com a funcionalidade de correção disponível.
Fixed in
Não há versão que corrija o comportamento por padrão. A funcionalidade de verificação estrita (EnableCertPaddingCheck) está presente e disponível como opt-in em todas as versões suportadas de Windows 10 e Windows 11 desde 10/12/2013; nenhuma atualização de segurança adicional é necessária para obter o código — apenas a configuração manual da chave de registro.

How to protect

A Microsoft não corrigiu o comportamento por padrão nem planeja fazê-lo: a verificação estrita é opt-in via chave de registro EnableCertPaddingCheck, disponível desde o boletim original (dezembro de 2013) e presente em todas as versões atualmente suportadas de Windows 10 e Windows 11 sem necessidade de atualização adicional — só é preciso configurar a chave. A configuração exata está descrita no Security Advisory 2915720 da Microsoft; ative-a testando previamente, pois pode quebrar softwares legítimos que dependem de dados anexados a arquivos assinados (um custo real de compatibilidade, motivo pelo qual nunca se tornou padrão). Aplicar apenas as atualizações do MS13-098 de 2013 não resolve o problema de fundo — aquele boletim corrigiu apenas parte do comportamento; a mitigação completa depende da chave de registro, que continua desativada por padrão em toda instalação nova.

How to detect

Não há assinatura de rede ou log padrão que indique exploração, já que o vetor é local/execução de arquivo e a evasão ocorre no nível de verificação de confiança, não de tráfego. Um indício técnico é comparar o tamanho do arquivo assinado com a região efetivamente coberta pela assinatura digital (ferramentas como sigcheck ou análise de PE que expõem o offset de fim de assinatura vs. tamanho real do arquivo); arquivos com dados anexados após o certificado, mas ainda reportando assinatura 'válida', são o padrão a procurar. A ausência da chave EnableCertPaddingCheck no registro indica que o host está com a verificação padrão (frouxa) ativa.

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.
Why is Microsoft republishing a CVE from 2013? We are republishing CVE-2013-3900 in the Security Update Guide to update the Security Updates table and to inform customers that the EnableCertPaddingCheck is available in all currently supported versions of Windows 10 and Windows 11. While the format is different from the original CVE published in 2013, except for clarifications about how to configure the EnableCertPaddingCheck registry value, the information herein remains unchanged from the original text published on December 10, 2013, Microsoft does not plan to enforce the stricter verification behavior as a default functionality on supported releases of Microsoft Windows. This behavior remains available as an opt-in feature via reg key setting, and is available on supported editions of Windows released since December 10, 2013. This includes all currently supported versions of Windows 10 and Windows 11. The supporting code for this reg key was incorporated at the time of release for Windows 10 and Windows 11, so no security update is required; however, the reg key must be set. See the Security Updates table for the list of affected software. Vulnerability Description A remote code execution vulnerability exists in the way that the WinVerifyTrust function handles Windows Authenticode signature verification for portable executable (PE) files. An anonymous attacker could exploit the vulnerability by modifying an existing signed executable file to leverage unverified portions of the file in such a way as to add malicious code to the file without invalidating the signature. An attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. If a user is logged on with administrative user rights, an attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights. Exploitation of this vulnerability requires that a user or application run or install a specially crafted, signed PE file. An attacker could modify an... See more at https://msrc.microsoft.com/update-guide/vulnerability/CVE-2013-3900
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N/E:U/RL:O/RC:C
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.