SpiderLabs Blog

CVE-2021-31166: RCE in Microsoft HTTP.sys

Written by Bryant Smith | May 21, 2021 5:12:00 AM

In the May 2021 Microsoft update, Microsoft patched an HTTP.sys vulnerability that has the ability to become a wormable remote code execution exploit.  This vulnerability is being tracked as CVE-2021-31166.  A proof of concept quickly emerged showing a denial of service attack and while this isn’t an RCE exploit it can be developed to disrupt Windows-based web servers.

Running the proof of concept script we get the following request.  In the Accept-Encoding header, we see a comma-delimited list of unknown coding types.  A use-after-free issue occurs because of the way unknown encoding types are handled as well as the invalid type created.  At the end, there is only a space as an option followed by another comma then the end of the line indicated by "\r\n". This combined creates an invalid type condition.

Detection is straightforward for the proof of concept code.  Until further information becomes available about the vulnerability we can look for two commas with only white space between them or nothing at all.

Regex:

/Accept-Encoding\:.*,\s*,/

We will continue to monitor the development of this CVE as telemetry comes in and new exploits are developed.  Based on the information we have received we expect to see more exploit code emerging with different ways to exploit this vulnerability. Trustwave Managed IDS devices can detect this malicious traffic.