Site icon Sophos News

Windows zero-day MSHTML attack – how not to get booby trapped!

Details are scarce so far, but Microsoft is warning Office users about a bug that’s dubbed CVE-2021-40444, and described as Microsoft MSHTML Remote Code Execution Vulnerability.

The bug doesn’t have a patch yet, so it’s what’s known as a zero-day, shorthand for “the Good Guys were zero days ahead of the Bad Guys with a patch for this vulnerability.”

In other words: the crooks got there first.

As far as we can tell, the treachery works like this:

  1. You open a booby-trapped Office file from the internet, either via an email attachment or by downloading a document from a criminal-controlled web link.
  2. The document includes an ActiveX control (embedded add-on code) that ought not to have unrestricted access to your computer.
  3. The ActiveX code activates the Windows MSHTML component, used for viewing web pages, exploits a bug in it to give itself the same level of control that you yourself would have right from the Windows desktop, and uses it to implant malware of the attacker’s choice.

MSHTML isn’t a full-on browser itself, but it forms the core “web engine” of Internet Explorer, and can be used on its own to create browsers or browser-like applications that need or want to display HTML files.

Even though HTML is most closely associated with web browsing, many apps other than browsers find it useful to be able to render and display web content, for example as a convenient and good-looking way to present documentation and help files, or to let users fill in and submit support tickets.

This “stripped down minibrowser” concept can be found not only on Windows but also on Google’s Android and Apple’s iOS, where the components Blink and WebKit respectively provide the same sort of functionality as MSHTML on Microsoft platforms. Mozilla products such as Firefox and Thunderbird are based on a similar idea, known as Gecko. On iOS, interestingly, Apple not only uses WebKit as the core of its own browser, Safari, but also mandates the use of WebKit in browsers or browser-like apps from all other vendors. That’s why Firefox on iOS is the only version of that product that doesn’t include Gecko – it has no choice but to use WebKit instead.

HTML isn’t just for browsing

What this means is that HTML rendering bugs don’t just affect your browser and your browsing activity.

There are often many different ways for cybercriminals to poke a virtual stick into vulnerabilities in your operating system’s web rendering code, and thereby to probe for exploits, without needing your browser to be open at all.

Even if there’s a bug that they can’t control closely enough to take over your browser, they may be able to find other applications in which the vulnerability can be abused not only to crash the app, but also to exploit it in order to grab control from it and implant malware.

That’s what CVE-2021-40444 seems to do, with the attack being delivered via Office files loaded into Word, Excel and so on, rather than by web pages viewed directly in your browser.

Although Microsoft no longer recommends the use of Internet Explorer, saying instead that “customers are encouraged to move to Microsoft Edge”, the features and the flaws of the MSHTML web rendering engine at the heart of Internet Explorer remain part of the operating system itself.

What to do?


GROUP POLICY SETTINGS AND REGISTRY ENTRIES YOU MAY FIND USEFUL

1. To neutralise ActiveX inside Internet Explorer (of which MSHTML forms the core, as explained above), follow the registry modification instructions in Microsoft’s own Security Update Guide for CVE-2021-40444.

Sophos customers who have applied these modifications can use the Sophos Live Discover tool to search their network for computers that missed out on the mitigation with a query like this:

SELECT name, type, data, datetime(mtime, 'unixepoch', 'localtime') AS registryWriteTime,
CASE
   WHEN data = '3' THEN 'ActiveX set to DISABLED as recommended by Microsoft'
   ELSE 'ActiveX setting does not match the Microsoft recommendation'
END AS mitigationStatus
FROM registry
WHERE path LIKE 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\%\1001' 
OR path LIKE 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\%\1004'

2. In the Windows Group Policy Editor, look for the settings listed below.

You can use the gpedit.msc app to edit the local Group Policy on a standalone computer, or the Group Policy Management Console app if you are managing a Windows domain.

Note that the VBA settings below (VBA is short for Visual Basic for Applications, also known as “Office macro code”) don’t directly help with the CVE-2021-40444 zero-day hole, which relies on ActiveX, but are worth considering as an additional part of your Microsoft Office security posture.

User Configuration > Administrative Templates > 
   Microsoft Office 2016 > Security Settings >
      Disable All ActiveX                 <--if you don't need ActiveX
      Disable VBA for Office Applications <--if you can do without document macros

User Configuration > Administrative Templates >
   Microsoft Excel 2016 > Excel Options > Security > Trust Center
      Block macros from running in Office files from the internet

User Configuration > Administrative Templates >
   Microsoft Excel 2016 > Excel Options > Security > Trust Center
      Block macros from running in Office files from the internet
      
User Configuration > Administrative Templates >
   Microsoft Powerpoint 2016 > Powerpoint Options > Security > Trust Center
      Block macros from running in Office files from the internet   

User Configuration > Administrative Templates >
   Microsoft Word 2016 > Word Options > Security > Trust Center
      Block macros from running in Office files from the internet   

To administer the Office settings above via the Group Policy editor, you will need to install the Administrative Templates for Office 365, Office 2019 and Office 2016 files from Microsoft, which aren’t installed by default on Windows desktops or servers, even if you have already installed Office itself.

Download the above file, extract the contents to your desktop or some other convenient folder, and then copy the contents of the admx directory and its subdirectories into C:\Windows\Policy Definitions.


3. If you want to turn on the Disable All ActiveX option on your own computer directly without using gpedit, and you are comfortable with editing the Windows registry yourself, you can create the following entry:

HKEY_CURRENT_USER > SOFTWARE > Policies > Microsoft >   <--these keys should already exist
   office > commmon > security >                        <--use "New - Key" to create these nested subkeys                   
      [DWORD] disableallactivex = 1                     <--finally, use "New - DWORD (32-bit) Value"

4. From CMD.EXE (a regular command prompt window), you can use these commands to check and set the relevant registry entry:

> reg query HKCU\SOFTWARE\Policies\Microsoft\office\common\security ^
    /v disableallactivex 
ERROR: The system was unable to find the specified registry key or value.

> reg add HKCU\SOFTWARE\Policies\Microsoft\office\common\security ^
    /v disableallactivex ^
    /t REG_DWORD /d 1
The operation completed successfully.

> reg query HKCU\SOFTWARE\Policies\Microsoft\office\common\security ^
    /v disableallactivex 
HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\office\common\security
    disableallactivex    REG_DWORD    0x1

SOPHOS DETECTION NAMES

Sophos products, including email, firewall and endpoint protection products, can detect and block this exploit and the malware we’ve seen delivered with it.

You can search for the following names in your product logs:

Exp/2140444-A     
Troj/JSExp-W     
Troj/Cabinf-A
Troj/Agent-BHRO
Troj/Agent-BHPO

Note that the final malware delivered by the crooks may differ from attack to attack, and note also that the specific Troj/Agent-* zombie malware variants listed could be delivered in other ways.

In other words, an attack with Exp/2140444-A wouldn’t inevitably lead to Troj/Agent-BHRO or Troj/Agent-BHPO on your network, while the presence of Troj/Agent-BHRO or Troj/Agent-BHPO on their own wouldn’t inevitably imply that the cause was Exp/2140444-A.


Exit mobile version