A UAC bypass is a Windows technique that elevates an administrator’s process from medium to high integrity without showing the User Account Control prompt. UAC normally makes even admin users run at reduced privilege and consent before elevating. Bypasses abuse auto-elevating system binaries (like fodhelper.exe or eventvwr.exe) that elevate silently, hijacking what they run via the registry. It is technically a same-user integrity jump rather than a cross-user escalation, but it is a common step after gaining an admin foothold.
What a UAC bypass is
User Account Control (UAC) makes administrators run most actions at medium integrity and prompts for consent before anything runs at high integrity (full admin). It is a barrier, not a strict security boundary, by Microsoft’s own description.
A UAC bypass elevates to high integrity without triggering that prompt. It abuses certain trusted Windows binaries that are configured to auto-elevate silently. By hijacking what one of those binaries executes, an attacker inherits its high-integrity context.
The abuse and payload
The classic bypass hijacks an auto-elevating binary through the registry:
- The fodhelper technique: create the registry key the binary reads and point it at a command:
reg add HKCU\Software\Classes\ms-settings\Shell\Open\command /ve /d "cmd.exe" /freg add HKCU\Software\Classes\ms-settings\Shell\Open\command /v DelegateExecute /f- run
fodhelper.exe, which auto-elevates and runs the hijackedcmd.exeat high integrity. - Similar techniques use
eventvwr.exe,computerdefaults.exe, and others.
Documented techniques shown for defenders.
How to defend
- Set UAC to the highest level ("Always notify") to reduce silent auto-elevation.
- Have users run as standard accounts, not administrators, so a bypass has nothing to elevate.
- Patch promptly, since Microsoft fixes specific auto-elevation paths over time.
- Apply application control to block the hijacked commands.
- Monitor for registry changes under the keys these bypasses abuse (for example
ms-settings\Shell\Open\command).