Microsoft Edge
Configure ShadowStack crash rollback behavior (obsolete)
Supported on Microsoft Edge version 95-109, Windows 7 or later
What it does
OBSOLETE: This policy is obsolete and doesn't work after Microsoft Edge 109. This policy is deprecated as it served only as a short-term mechanism to give enterprises more time to update their environments and report issues if they're found to be incompatible with Hardware-enforced Stack Protection. It doesn't work in Microsoft Edge starting with version 109. Microsoft Edge includes a Hardware-enforced Stack Protection security feature. This feature can result in the browser crashing unexpectedly in cases that don't represent an attempt to compromise the browser's security. Using this policy, you can control the behavior of the Hardware-enforced Stack Protection feature after a crash triggered by this feature is encountered. Set this policy to 'Disable' to disable the feature. Set this policy to 'DisableUntilUpdate' to disable the feature until Microsoft Edge updates next time. Set this policy to 'Enable' to keep the feature enabled. Policy options mapping: * Disable (0) = Disable Hardware-enforced Stack Protection * DisableUntilUpdate (1) = Disable Hardware-enforced Stack Protection until the next Microsoft Edge update * Enable (2) = Enable Hardware-enforced Stack Protection Use the preceding information when configuring this policy.
What it writes
- Hive
- HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
- Registry key
Software\Policies\Microsoft\Edge
Options
| Option | Type | Registry value | Allowed values |
|---|---|---|---|
| Configure ShadowStack crash rollback behavior | Drop-down list | ShadowStackCrashRollbackBehavior |
|
Configure and deploy
Choose a state and the option values; the output below is generated from the template for exactly that.
Enabled · Computer · template defaults
Registry file (.reg)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Edge]
"ShadowStackCrashRollbackBehavior"=dword:00000000
PowerShell
$ErrorActionPreference = 'Stop'
function Set-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $PropertyType,
[Parameter(Mandatory = $true)][object] $Value
)
if (-not (Test-Path -LiteralPath $Path)) {
New-Item -Path $Path -Force | Out-Null
}
New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}
function Remove-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (Test-Path -LiteralPath $Path) {
Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
}
}
function Clear-RegistryKeyValues {
param(
[Parameter(Mandatory = $true)][string] $Path
)
if (-not (Test-Path -LiteralPath $Path)) {
return
}
foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
}
}
# Policy: Configure ShadowStack crash rollback behavior (obsolete)
# Name: ShadowStackCrashRollbackBehavior
# Scope: Machine
# State: Enabled
# Source: msedge.admx
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Edge' -Name 'ShadowStackCrashRollbackBehavior' -PropertyType 'DWord' -Value 0
- The OMA-URI is an inferred ADMX-backed Policy CSP candidate derived from the source ADMX file name and policy name.
- Some Microsoft policies use built-in Policy CSP pages whose area names don't match the ADMX file name, so verify the candidate against Microsoft Learn before deployment.
- The generated payload is incomplete because one or more ADMX element values were not supplied: ShadowStackCrashRollbackBehavior
ADMX profile candidate (OMA-URI)
./Device/Vendor/MSFT/Policy/Config/ADMX_msedge/ShadowStackCrashRollbackBehaviorIntune remediation scripts
Detection
$ErrorActionPreference = 'Stop'
$reasons = [System.Collections.Generic.List[string]]::new()
function Test-RegistryValueExists {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (-not (Test-Path -LiteralPath $Path)) {
return $false
}
return $null -ne (Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue)
}
function Test-RegistryValueEquals {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $Kind,
[Parameter(Mandatory = $true)][object] $Expected
)
if (-not (Test-Path -LiteralPath $Path)) {
return $false
}
$valueObject = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue
if ($null -eq $valueObject) {
return $false
}
$actual = $valueObject.$Name
switch ($Kind) {
'String' { return [string]$actual -ceq [string]$Expected }
'ExpandString' { return [string]$actual -ceq [string]$Expected }
'DWord' { return [uint32]$actual -eq [uint32]$Expected }
'QWord' { return [uint64]$actual -eq [uint64]$Expected }
'MultiString' {
$actualArray = @($actual)
$expectedArray = @($Expected)
if ($actualArray.Count -ne $expectedArray.Count) { return $false }
for ($index = 0; $index -lt $actualArray.Count; $index++) {
if ([string]$actualArray[$index] -cne [string]$expectedArray[$index]) { return $false }
}
return $true
}
'Binary' {
$actualArray = [byte[]]$actual
$expectedArray = [byte[]]$Expected
if ($actualArray.Length -ne $expectedArray.Length) { return $false }
for ($index = 0; $index -lt $actualArray.Length; $index++) {
if ($actualArray[$index] -ne $expectedArray[$index]) { return $false }
}
return $true
}
default { return [string]$actual -ceq [string]$Expected }
}
}
# Policy: Configure ShadowStack crash rollback behavior (obsolete)
# Name: ShadowStackCrashRollbackBehavior
# Scope: Machine
# State: Enabled
# Source: msedge.admx
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Edge' -Name 'ShadowStackCrashRollbackBehavior' -Kind 'DWord' -Expected 0
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Edge\ShadowStackCrashRollbackBehavior') | Out-Null
}
if ($reasons.Count -eq 0) {
Write-Output 'Compliant'
exit 0
}
$reasons | ForEach-Object { Write-Output $_ }
exit 1
Remediation
$ErrorActionPreference = 'Stop'
function Set-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $PropertyType,
[Parameter(Mandatory = $true)][object] $Value
)
if (-not (Test-Path -LiteralPath $Path)) {
New-Item -Path $Path -Force | Out-Null
}
New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}
function Remove-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (Test-Path -LiteralPath $Path) {
Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
}
}
function Clear-RegistryKeyValues {
param(
[Parameter(Mandatory = $true)][string] $Path
)
if (-not (Test-Path -LiteralPath $Path)) {
return
}
foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
}
}
# Policy: Configure ShadowStack crash rollback behavior (obsolete)
# Name: ShadowStackCrashRollbackBehavior
# Scope: Machine
# State: Enabled
# Source: msedge.admx
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Edge' -Name 'ShadowStackCrashRollbackBehavior' -PropertyType 'DWord' -Value 0
History 37 retained releases
- 150.0.4078.8016 Jul 2026
- Already present in the first release ChangeIntel keeps.
36 later releases left it unchanged.
Template
- Internal name
ShadowStackCrashRollbackBehavior- Namespace
Microsoft.Policies.Edge- Template file
msedge.admx- Release
- Microsoft Edge 155.0.4283.62 · file set
0a733b0040dbbf02…
Definition, editor controls and support
Definition
<policy class="Both" displayName="$(string.ShadowStackCrashRollbackBehavior)" explainText="$(string.ShadowStackCrashRollbackBehavior_Explain)" key="Software\Policies\Microsoft\Edge" name="ShadowStackCrashRollbackBehavior" presentation="$(presentation.ShadowStackCrashRollbackBehavior)" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.Edge:microsoft_edge" />
<supportedOn ref="Microsoft.Policies.Edge:OBSOLETE_WIN7_V95_V109" />
<elements>
<enum id="ShadowStackCrashRollbackBehavior" valueName="ShadowStackCrashRollbackBehavior">
<item displayName="$(string.ShadowStackCrashRollbackBehavior_Disable)">
<value>
<decimal value="0" />
</value>
</item>
<item displayName="$(string.ShadowStackCrashRollbackBehavior_DisableUntilUpdate)">
<value>
<decimal value="1" />
</value>
</item>
<item displayName="$(string.ShadowStackCrashRollbackBehavior_Enable)">
<value>
<decimal value="2" />
</value>
</item>
</enum>
</elements>
</policy>Editor controls
<presentation id="ShadowStackCrashRollbackBehavior" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions"><dropdownList refId="ShadowStackCrashRollbackBehavior">Configure ShadowStack crash rollback behavior</dropdownList></presentation>Supported platforms and category
Microsoft.Policies.Edge:category:microsoft_edge
<category displayName="$(string.microsoft_edge)" name="microsoft_edge" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Microsoft.Policies.Edge:definition:OBSOLETE_WIN7_V95_V109
<definition displayName="$(string.OBSOLETE_WIN7_V95_V109)" name="OBSOLETE_WIN7_V95_V109" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Microsoft.Policies.Edge:category:microsoft_edge
<category displayName="$(string.microsoft_edge)" name="microsoft_edge" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Microsoft.Policies.Edge:microsoft_edge">Microsoft Edge</string></strings>
Microsoft.Policies.Edge:definition:OBSOLETE_WIN7_V95_V109
<definition displayName="$(string.OBSOLETE_WIN7_V95_V109)" name="OBSOLETE_WIN7_V95_V109" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Microsoft.Policies.Edge:OBSOLETE_WIN7_V95_V109">Microsoft Edge version 95-109, Windows 7 or later</string></strings>