TMAegisBeta
More rules for office

Microsoft Office

TMA-OFFICE-2.2.4.7.2.10

Ensure 'Prevent Excel from running XLM macros' is set to 'Enabled'

HighLevel 1Automatedoffice

Description

This policy setting will prevent Excel from running Excel 4.0 (XLM) macros. XLM macros were first added to Excel in 1992 and were disabled in Excel (Build 16.0.14427.10000) by Microsoft in 2021. The recommended state for this setting is: Enabled. Rationale: XLM is data macro format from the early nineties that was not built with security in mind. Macros can be easily exploited and are a favorite hiding place of malicious code. User setting: the audit checks HKEY_USERS\<SID>\SOFTWARE\Policies\Microsoft\office\16.0\excel\security:xl4macrooff (REG_DWORD) in every loaded user hive (S-1-5-21-*) and is compliant when each holds 1. It prints 'no-user-hive-loaded' (FAIL) when no user profile is loaded, so scan while users are logged on.

How it is checked

Audit method: Windows registry

registry
$sids = @(Get-ChildItem -Path 'Registry::HKEY_USERS' -ErrorAction SilentlyContinue | Where-Object { $_.PSChildName -match '^S-1-5-21-\d+-\d+-\d+-\d+$' } | ForEach-Object { $_.PSChildName }); if ($sids.Count -eq 0) { 'no-user-hive-loaded' } else { $bad = @(); foreach ($s in $sids) { $v = (Get-ItemProperty -Path ('Registry::HKEY_USERS\' + $s + '\SOFTWARE\Policies\Microsoft\office\16.0\excel\security') -Name 'xl4macrooff' -ErrorAction SilentlyContinue).'xl4macrooff'; if (-not ($null -ne $v -and @(1) -contains [int64]$v)) { $bad += $s + ':xl4macrooff=' + $v } }; if ($bad.Count -eq 0) { 'compliant' } else { 'non-compliant: ' + ($bad -join ', ') } }
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

Configure through Group Policy (User Configuration): User Configuration\Administrative Templates\Microsoft Excel 2016\Excel Options\Security\Trust Center\Prevent Excel from running XLM macros = Enabled

Properties

Operating systems
Any
Tags
officeproductivitycis-l1
Reference
CIS Microsoft Office Enterprise Benchmark v2.0.0 - 2.2.4.7.2.10 Ensure 'Prevent Excel from running XLM macros' is set to 'Enabled'

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target office