Microsoft has released details on a potentially serious vulnerability in Windows 10 and Server that could be exploited to spoof certificates to sign executable files, making malicious code appear as if it comes from a trusted provider.
In its advisory for CVE-2020-0601, Microsoft explained the flaw in the Windows cryptographic application programming interface as provided by the crypt32.dll dynamic link library is due to incomplete validation of elliptic curve cryptography (ECC) certificates.
The vulnerability was discovered by the United States National Security Agency (NSA) intelligence service, and reported to Microsoft late last year.
Threat scenarios beyond bogus signing of malicious code include exploiting the flaw in man-in-the-middle attacks to decrypt victim communications, Microsoft said.
Microsoft has issued a security update for the flaw as part of its regular Patch Wednesday set of fixes.
While Microsoft rates the severity of the flaw as "important" rather than critical, and has not yet found exploitation or prior disclosure of the vulnerability, it notes that it is more likely to be abused by hackers.
The NSA, however, "assesses the vulnerability to be severe".
"Sophisticated cyber actors will understand the underlying flaw very quickly and, if exploited, would render the previously mentioned platforms fundamentally vulnerable," it said. [pdf].
The intelligence agency urged Windows users to apply the security patch as soon as possible.
"The consequences of not patching the vulnerability are severe and widespread. Remote exploitation tools will likely be made quickly and widely available," NSA advised.
After the security update has been applied, it is possible to use Windows Event Viewer to find attempts at using forged certificates to exploit the vulnerability.
Windows will generate Event ID 1 after each reboot, in the Windows Logs/Application section of Event Viewer when exploit attempts are detected.
OpenSSL and Windows certutil tools can be used to inspect certificates, and the NSA said that those with explicitly defined elliptic curve parameters that only partially match standard curves are suspicious.
This is especially so if they include public keys for trusted certificates, which means they could represent a bona fide exploitation attempt, NSA warned.
Information security experts are debating the severity of the flaw, which received plenty of hype prior to disclosure.
Some point to the vulnerability being rated merely as important and needing authentication on systems before remote code execution is possble.
But US Computer Emergency Response Team (CERT) vulnerability analyst Will Dormann, who had prior to disclosure knowledge of the bug, said it affects all validation of X.509 cryptographic certificate chains.
Will confirms all X.509 validation broken, not just code signing. Okay, I'm back on the hype train, that's pretty bad. https://t.co/6rBV1lu4Yk
— Tavis Ormandy (@taviso) January 14, 2020
Dormann linked the CVE-2020-0601 improper X.509 certificate chain validation with a new unauthenticated remote code execution flaw in Windows Remote Desktop Gateway, used to provide access to Remote Desktop Services in Windows Server, Microsoft Azure and AWS' equivalent cloud offering.
X.509 is the International Telecommunications Union (ITU) cryptography standard that defines the format of public key (PKI) certificates.
The cryptographic standard underpins Transport Layer Security (TLS) for HTTPS secured communications and electronic signatures for a variety of purposes - from signing documents to software to validating they are from a trusted source.
If X.509 validation can be bypassed, anything that relies on chained certificates can be tricked into accepting tampered credentials.