Mitigate WinVerifyTrust Signature Validation Vulnerability CVE-2013-3900

WinVerifyTrust Signature Validation Vulnerability

The WinVerifyTrust signature validation vulnerability in Microsoft’s Windows operating system, prompting the re-publication of CVE-2013-3900. In this blog post, we will delve into the details of this vulnerability, understand its implications, and provide a comprehensive guide on mitigating it using a batch script that can be seamlessly integrated into popular enterprise management solutions like Tanium or SCCM.

Understanding the Vulnerability:

The vulnerability, prominently highlighted by Qualys under the ID 378332 and also addressed by Tenable/Nessus plugin ID 166555, is rooted in a critical aspect of Windows security—the Authenticode signature verification process. In a proactive move to fortify the system against potential exploits, Microsoft responded to this identified issue by implementing the EnableCertPaddingCheck feature. This security enhancement, introduced on December 10, 2013, offers users the option to opt in through specific registry key settings, thereby empowering them with an additional layer of defense against potential threats and bolstering the overall integrity of the Windows operating environment.


Microsoft’s Recommendations:

 To address this vulnerability, Microsoft recommends executable authors adhere to the new verification standard by ensuring that signed binaries contain no extraneous information in the WIN_CERTIFICATE structure. Additionally, customers are advised to conduct thorough testing to understand how changes to Authenticode signature verification may impact their specific environments before implementing them.


 Mitigating the Vulnerability:

 In response to this identified vulnerability, Microsoft proactively suggests that authors of executables align with the latest verification standards. This involves a meticulous review to guarantee that signed binaries adhere to the recommended guidelines, ensuring the absence of any extraneous information within the WIN_CERTIFICATE structure. Furthermore, Microsoft advises customers to approach the mitigation process with a strategic and cautious mindset. The company recommends conducting comprehensive testing to gain insights into how the adjustments in Authenticode signature verification may potentially affect their specific environments. This prudent approach allows users to proactively understand and manage the impact of these security measures before implementing them, fostering a more resilient and secure computing environment.


 Batch Script:

@echo off

set regkey_64=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Wintrust\Config

set regkey_32=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Wintrust\Config

set value=EnableCertPaddingCheck

set data=1

reg add “%regkey_64%” /v “%value%” /t REG_SZ /d “%data%” /f

reg add “%regkey_32%” /v “%value%” /t REG_SZ /d “%data%” /f

echo %value% has been set to %data%



This script can be effortlessly integrated into enterprise management solutions such as Tanium or SCCM, ensuring a seamless deployment across your Windows environment.

Powershell Script Explanation:


For those familiar with PowerShell, an alternative script can be used to achieve the same results. PowerShell is a powerful scripting language that allows for more flexibility and control in system administration tasks. Below is an equivalent PowerShell script:


PowerShell Script:

$regkey_64 = “HKLM:\SOFTWARE\Microsoft\Cryptography\Wintrust\Config”

$regkey_32 = “HKLM:\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Wintrust\Config”

$value = “EnableCertPaddingCheck”

$data = “1”


Set-ItemProperty -Path $regkey_64 -Name $value -Value $data

Set-ItemProperty -Path $regkey_32 -Name $value -Value $data


Write-Host “$value has been set to $data”


This PowerShell script achieves the same outcome as the batch script, setting the EnableCertPaddingCheck value in the Windows registry. Organizations can choose the scripting approach that aligns with their preferences and existing infrastructure.


Here’s a breakdown of what each part of the script does:


$regkey_64 and $regkey_32: Define registry paths for 64-bit and 32-bit systems, respectively.

$value: Specifies the name of the registry entry to be modified, which is “EnableCertPaddingCheck.”

 $data: Specifies the value to set for the registry entry, which is “1.”

 Set-ItemProperty: Updates the registry entries with the specified values. The script sets the “EnableCertPaddingCheck” value to “1” in both the 64-bit and 32-bit registry hives.

 Write-Host: Outputs a message to the console indicating that the registry entry has been set to the specified value.



As cyber threats evolve, proactive measures become essential for safeguarding sensitive systems and data. Addressing the WinVerifyTrust signature validation vulnerability through the EnableCertPaddingCheck feature not only aligns with Microsoft’s recommendations but also strengthens the security of Windows environments. Implementing the provided batch or PowerShell script, whether through Tanium or SCCM, offers a practical and efficient solution to mitigate this specific vulnerability and fortify defences against potential threats. Stay vigilant, stay secure.

Leave a Comment

Your email address will not be published. Required fields are marked *

Exit mobile version