Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Security Management

11/27/2017
01:06 PM
Larry Loeb
Larry Loeb
Larry Loeb
50%
50%

Microsoft Misses Memory Mistake: The Security That Wasn't

An error in implementing a security routine means millions of users thought to be protected against a particular attack were actually more vulnerable than ever.

Sometimes, the journey ends up in a place totally different from where you thought you would be when you started it. Will Dormann, a security analyst for CERT, found that out last week. He started out looking into Microsoft's patch for Equation Editor (EQNEDT32.EXE), which was compiled 17 years ago, and ended up deep in the bowels of Windows.

What he found was that Address Space Layout Randomization (ASLR), a memory organization technique that is designed to foil a certain kind of attack, had been improperly implemented since the days of Vista. This meant that since the days of Windows 7 this prevention measure had been nonfunctional.

What ASLR does is to randomize where executable code starts inside memory. This is important so that attackers will have no idea of where that code begins and therefore not know the location where they can start to mess with it. But it turns out that the method Windows uses for this needs two steps to be performed, rather than the one step that their tools actually do perform.

The CERT advisory Dormann wrote puts it this way. "Both EMET and Windows Defender Exploit Guard enable system-wide ASLR without also enabling system-wide bottom-up ASLR. Although Windows Defender Exploit guard does have a system-wide option for system-wide bottom-up-ASLR, the default GUI value of 'On by default' does not reflect the underlying registry value (unset). This causes programs without /DYNAMICBASE to get relocated, but without any entropy."

Translating from Geek, that means that even though bottom-up-ASLR (start the ASLR from the bottom of available memory) is supposed to be set by the Windows tool's GUI, it's not. The GUI says it will, but the actual registry code to do this is not set. So, allowing a system-wide ASLR to occur (basically forcing it to happen for all programs) will do nothing. Having "no entropy" means the executable code relocates to the same place every time it gets loaded into memory.

Microsoft responded to the situation with a blog post that unctuously described the ASLR process, and admitted that "CERT/CC did identify an issue with the configuration interface of Windows Defender Exploit Guard (WDEG) that currently prevents system-wide enablement of bottom-up randomization…EMET does not support enabling bottom-up randomization system-wide and therefore cannot directly configure this setting." In other words, they confirmed that this was the situation.

So, how does it get fixed?

If you are a developer, you can use the /DYNAMICBASE flag provided by the Visual C++ linker to enable ASLR in your application and bypass the system-wide call to it.

If you are a user, the only way to deal with it is to manually set the registry key to the correct value. Most users can't do this without messing up their systems.

We are left with the question of how Microsoft could let this kind of critical vulnerability happen over such a long period. Didn't they check at all? And what else haven't they looked at?

This is a big hit to Redmond's credibility, that's for sure.

Related posts:

— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.

Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
COVID-19: Latest Security News & Commentary
Dark Reading Staff 7/6/2020
Another COVID-19 Side Effect: Rising Nation-State Cyber Activity
Stephen Ward, VP, ThreatConnect,  7/1/2020
Lessons from COVID-19 Cyberattacks: Where Do We Go Next?
Derek Manky, Chief of Security Insights and Global Threat Alliances, FortiGuard Labs,  7/2/2020
Register for Dark Reading Newsletters
White Papers
Video
Cartoon
Current Issue
Special Report: Computing's New Normal, a Dark Reading Perspective
This special report examines how IT security organizations have adapted to the "new normal" of computing and what the long-term effects will be. Read it and get a unique set of perspectives on issues ranging from new threats & vulnerabilities as a result of remote working to how enterprise security strategy will be affected long term.
Flash Poll
The Threat from the Internetand What Your Organization Can Do About It
The Threat from the Internetand What Your Organization Can Do About It
This report describes some of the latest attacks and threats emanating from the Internet, as well as advice and tips on how your organization can mitigate those threats before they affect your business. Download it today!
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2020-15600
PUBLISHED: 2020-07-07
An issue was discovered in CMSUno before 1.6.1. uno.php allows CSRF to change the admin password.
CVE-2020-15599
PUBLISHED: 2020-07-07
Victor CMS through 2019-02-28 allows XSS via the register.php user_firstname or user_lastname field.
CVE-2020-8916
PUBLISHED: 2020-07-07
A memory leak in Openthread's wpantund versions up to commit 0e5d1601febb869f583e944785e5685c6c747be7, when used in an environment where wpanctl is directly interfacing with the control driver (eg: debug environments) can allow an attacker to crash the service (DoS). We recommend updating, or to res...
CVE-2020-12821
PUBLISHED: 2020-07-07
Gossipsub 1.0 does not properly resist invalid message spam, such as an eclipse attack or a sybil attack.
CVE-2020-15008
PUBLISHED: 2020-07-07
A SQLi exists in the probe code of all Connectwise Automate versions before 2020.7 or 2019.12. A SQL Injection in the probe implementation to save data to a custom table exists due to inadequate server side validation. As the code creates dynamic SQL for the insert statement and utilizes the user su...