Fix LSAISO process high CPU usage in Windows 10

Some users might be faced with the problem in which the LSAISO.exe (LSA Isolated) process experiences high CPU usage on a Windows 10 computer. The process is associated with Credential Guard & Key Guard. In this post, we have a look at the possible cause and the recommended solution to this issue.

LSAISO process high CPU usage

LSAISO process high CPU usage

VSM uses isolation modes that are known as Virtual Trust Levels (VTL) to protect IUM processes (also known as trustlets). IUM processes such as LSAISO run in VTL1 while other processes run in VTL0. The memory pages of processes that run in VTL1 are protected from any malicious code that is running in VTL0.

The Local Security Authority Subsystem Service (LSASS) process is responsible for managing the local system policy, user authentication, and auditing while it also handled sensitive security data such as password hashes and Kerberos keys.

To use the security benefits of VSM, the LSAISO trustlet that runs in VTL1 communicates through an RPC channel with the LSAISO process that is running in VTL0. The LSAISO secrets are encrypted before they are sent to LSASS, and the pages of LSAISO are protected from any malicious code that is running in VTL0.

Possible cause of LSAISO process high CPU usage

In Windows 10, the LSAISO process runs as an Isolated User Mode (IUM) process in a new security environment that is known as Virtual Secure Mode (VSM).

Applications and drivers that try to load a DLL (Dynamic Link Library) into an IUM process, inject a thread, or deliver a user-mode APC may destabilize the entire system. This destabilization can trigger the high LSAISO CPU usage in Windows 10.

How to fix LSAISO process high CPU usage issue

To resolve this issue, Microsoft recommends using one of the following methods.

  1. Use the process of elimination.
  2. Check for queued APCs.

Now, let’s delve into details for the two recommended solutions.

1] Use the process of elimination

It is common for some applications (such as antivirus programs) to inject DLLs or queue APCs to the LSAISO process. This causes the LSAISO process to experience high CPU usage.

In this scenario, the “process of elimination” troubleshooting method requires that you disable applications and drivers until the CPU spike is mitigated. After you determine which software is causing the problem, contact the vendor for a software update.

2] Check for queued APCs

In this scenario, you’ll need to first download the free Windows Debugging (WinDbg) tool. The tool is also included in the Windows Driver Kit (WDK).

Once you have the WinDbg tool downloaded, you can then proceed with the steps outlined below to determine which driver is queuing an APC to LSAISO.

The procedure is as follows:
1. While you reproduce the CPU spike, generate a kernel memory dump by using NotMyFault.exe – a tool bundled into the Sysinternals suite.

Note: A complete memory dump is not recommended because it would require decryption if VSM is enabled on the system.

To enable the kernel dump, do the following:

  • Press Windows key + R. In the Run dialog box, type control system, hit Enter to open the System applet in Control Panel, and then select Advanced system settings.
  • On the Advanced tab of the System Properties dialog box, select Settings in the Startup and Recovery area.
  • In the Startup and Recovery dialog box, select Kernel memory dump in the Write debugging information drop-down list.
  • Make a note of the Dump File location to use in step 5, and then click OK.

2. Click the Start button, locate and click Windows Kits entry on the Start menu, then select WinDbg(x64/x86) to launch the tool.

3. On the File menu, click Symbol File Path, add the address path below for the Microsoft Symbol Server to the Symbol path field, and click OK.

https://msdl.microsoft.com/download/symbols

4. Next, on the File menu, click Open Crash Dump.

5. Browse to the location of the kernel dump file that you noted in step 1, and then select Open. Check the date on the .dmp file to make sure that it was newly created during this troubleshooting session.

6. In the Command window, type !apc, hit Enter.

You’ll receive a similar output as shown below.

7. Search the results for LsaIso.exe. If a driver that is named “<ProblemDriver>.sys” is listed under LsaIso.exe, as shown in the output above – contact the vendor, and then refer them to this Microsoft document for the recommended mitigation for the Isolated User Mode (IUM) processes.

If no drivers are listed under Lsaiso.exe, this means that the LSAISO process has no queued APCs.