CVE-2026-86911
Executive Summary
CVE-2026-86911 is an improper-restriction-of-rendered-UI-layers vulnerability (CWE-1021) in Apple macOS in which a malicious application can bypass the clickjacking protections that are intended to safeguard secure system prompts. The flaw requires a user to interact with the malicious app (UI:R) and grants local, unprivileged code the opportunity to defeat a trust boundary that users are conditioned to rely on — namely, the integrity of security consent dialogs. The impact is rated CVSS 5.5 (Medium): integrity is assessed High (I:H), while confidentiality and availability are Not Impacted. EPSS is 0.00171 (6.8th percentile), CISA KEV status is negative, and no public PoC, exploit code, or Nuclei template exists as of this writing.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
CWE-1021 ("Improper Restriction of Rendered UI Layers or Frames") is the authoritative classification supplied by NVD. This weakness class describes the failure of an application or OS component to properly restrict how one rendered layer of user interface can be positioned, overlaid, or made transparent relative to another. In web contexts this is the classic clickjacking / UI-redress family; in a native desktop operating system, the equivalent mechanism is the layering, z-order, and input-routing behavior of separately drawn windows and system-sheet surfaces.
The NVD description provides two facts that bound the technical analysis:
The flaw is state-management related — "This issue was addressed with improved state management." This implies the defect is not a pure rendering bug but a lifecycle/state-tracking bug: some piece of UI or window-securing state (e.g., whether a secure prompt is currently presented, active, or trusted) can be desynchronized from the actual rendered/presented state. When that tracked state and the real presented state disagree, protection logic that gates interaction may be evaluated against stale or incorrect state.
The security consequence is a bypass of clickjacking protections for secure prompts. "Secure prompts" denotes OS-level consent/authentication surfaces — dialogs that request a password, permission grant, or security-sensitive confirmation. The platform's clickjacking protections are intended to ensure such a prompt cannot be visually obscured, relocated, or made to receive input the user did not intend to direct at it.
The attack surface is therefore the macOS window server / UI presentation layer as reached by a local, unprivileged application. The vulnerability is local (AV:L), requires no privileges (PR:N), and requires user interaction (UI:R). The user interaction requirement should not be read as a strong barrier: the entire point of a clickjacking bypass is to weaponize otherwise-benign user clicks by redirecting them to a security-critical surface the attacker controls the presentation of.
Because the public description does not name affected frameworks, window classes, IPC endpoints, APIs, or file paths, no code-level specifics — function names, message names, symbol names, or call sequences — can be asserted without fabrication. What can be stated with confidence is the vulnerability class and mechanism: the integrity of the UI trust boundary between a malicious app's rendering surface and a security-consent prompt can be subverted via improper state management, causing the "secure" prompt to be interacted with in a way its protections are designed to prevent. The correct remediation as described is corrective state management in the fixed release, not a purely visual change — consistent with the defect being a state-synchronization problem rather than a simple drawing error.
Exploitation Scenarios
No public PoC is available, and no exploit code, malware sample, or Nuclei template has been observed. The following chain is inferred at the vulnerability-class level and deliberately avoids inventing identifiers not present in the source data.
1) Reconnaissance / target identification. The attacker must already be able to run code locally on the target Mac, since the vector is local (AV:L) with no privileges (PR:N). The realistic delivery phase is therefore a malicious application: delivered via a signed or unsigned app bundle, a dropper, or social-engineering a user into launching a "helpful" utility. Target identification is trivial and universal — any unpatched macOS installation on the pre-Golden-Gate-27 line is in scope. No network scanning is required for the vulnerability itself.
2) Triggering the flaw class. Once running, the malicious app presents its own window content and, exploiting the improper state tracking of UI layers, arranges for that content to be composed or positioned in a manner the clickjacking protections are supposed to forbid. In CWE-1021 terms, the attacker's rendered layer is not properly restricted relative to — or is able to desynchronize from the tracked state of — a secure system prompt. The user's click or interaction, which the user believes is going to the attacker's innocuous UI, is instead resolved against a security-consent surface.
3) Payload / execution method (class level). The "payload" is not code execution in the memory-corruption sense; it is user-directed consent. By defeating the clickjacking protection, the attacker induces the user to confirm, approve, or authorize something the secure prompt was meant to gate. Because no API-level details are disclosed, the precise consent object cannot be named without fabrication — but the class-level outcome is that a security decision the user did not knowingly make is registered as if they had made it.
4) Post-exploitation impact. The CVSS vector assigns I:H, C:N, A:N. That is the crucial signature: the exploit does not directly read secrets (no confidentiality impact) and does not crash or destroy the system (no availability impact), but it subverts integrity of a security decision. Integrity compromise of a consent boundary can be a stepping stone: a granted permission or an authenticated action can subsequently expand the attacker's reach beyond what they held before. The user interaction requirement also gives the attacker a natural social-engineering delivery partner, which is exactly the design tradeoff embodied in the UI:R metric.
Constraints and honest uncertainty. There is no evidence of exploitation in the wild; the vulnerability is not in CISA KEV. There is no shipped exploit and no template. This is a post-disclosure, patch-available vulnerability with theoretical-to-moderate real-world risk, and its practical severity depends entirely on which secure prompt can be targeted and what authority that prompt carries — a detail not disclosed publicly.
Impact Assessment
Blast radius. Local to a single macOS host; one malicious app can, in principle, affect the user session in which it runs. There is no evidence of remote unauthenticated impact. This limits lateral blast radius but concentrates impact on user trust: secure prompts are the final backstop for consent on macOS, and a bypass that defeats their integrity erodes the reliability of that backstop for that user session.
CVSS subscores and what they mean.
- AV:L (Local) — attacker needs code execution or local access on the endpoint; remote mass-exploitation is not the risk model.
- AC:L (Low) — no exotic conditions described; the flaw is reliably reachable once an attacker app is running.
- PR:N (None) — the malicious app does not need elevated privilege to trigger the defect, which raises its value in a defense-evasion or privilege-expansion chain.
- UI:R (Required) — a user must interact; this is the primary brake on severity and the reason the score lands at Medium rather than High.
- S:U (Unchanged) — the impact stays within the vulnerable component's security authority rather than crossing a scope boundary per the CVSS definition.
- C:N / I:H / A:N — the exploit does not directly disclose data and does not cause loss of availability; it compromises the integrity of security decisions. Operations teams should weight this as a trust-boundary compromise, not a data-breach event.
Business context. For enterprises, the concern is not catastrophic breach but reduced reliability of endpoint consent controls. A compromised user can be induced to approve actions they would not have approved had the prompt appeared as designed. This matters most where macOS endpoints gate sensitive actions on user consent — MDM-adjacent approvals, keychain-touching operations, and permission grants. It is a user-session integrity finding with potential for downstream escalation, not a standalone RCE. EPSS 0.00171 (6.8th percentile) reinforces that near-term exploitation volume is expected to be very low.
Detection Guidance
The detection content below focuses on the observable correlates of this vulnerability class — a local app presenting UI over or ahead of a secure prompt, unusual window/UI layering by freshly executed apps, and consent/authorization events in rapid succession following app launch. Because no kernel function, symbol, or endpoint is disclosed, rules intentionally use behavioral anchors (process launch, prompt/consent telemetry, window state) rather than fabricated identifiers.
Sigma Rule
title: macOS Suspicious App Launch Prior to Security Consent Prompt (CVE-2026-86911 UI Redress Pattern)
id: 5b1f9c2a-8691-4c11-9e27-macos-clickjack-bypass
status: experimental
description: >
Detects a freshly launched, short-lived or unsigned/ad-hoc sibling application
immediately followed by an OS security/consent prompt event on macOS. Correlates
to the CWE-1021 UI-redress pattern described in CVE-2026-86911.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-86911
author: valtersit.com Threat Intelligence
date: 2026/01/01
tags:
- attack.defense_evasion
- attack.t1068
- cve.2026.86911
logsource:
category: process_creation
product: macos
detection:
selection_proc:
Image|endswith:
- '.app/Contents/MacOS/'
ParentImage|endswith:
- '/Finder'
- '/launchd'
selection_suspicious:
- CommandLine|contains:
- 'NSWindow'
- 'layer'
- Image|startswith:
- '/tmp/'
- '/var/folders/'
- '/Users/Shared/'
condition: selection_proc and selection_suspicious
fields:
- Image
- CommandLine
- User
- ParentImage
falsepositives:
- Legitimate user launching apps from /Users/Shared
- Developer tooling that manipulates window layers
level: medium
YARA Rule
rule CVE_2026_86911_macOS_UI_Redress_Strings
{
meta:
author = "valtersit.com Threat Intelligence"
description = "Heuristic match for macOS applications that reference clickjacking/UI-redress and secure-prompt bypass behavior associated with CVE-2026-86911 (CWE-1021). High false-positive potential - use as triage aid only."
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-86911"
cve = "CVE-2026-86911"
date = "2026-01-01"
severity = "medium"
strings:
$ui1 = "SecurePrompt" ascii wide nocase
$ui2 = "secure prompt" ascii wide nocase
$ui3 = "clickjack" ascii wide nocase
$ui4 = "UIEvent" ascii wide nocase
$ui5 = "NSWindow" ascii wide nocase
$ui6 = "CGWindowLevel" ascii wide nocase
$ui7 = "makeKeyAndOrderFront" ascii wide nocase
$ui8 = "setLevel:" ascii wide nocase
$macho1 = { CF FA ED FE } // Mach-O 64-bit magic (LE)
$macho2 = { CE FA ED FE } // Mach-O 64-bit magic (BE)
condition:
( $macho1 at 0 or $macho2 at 0 or uint32(0) == 0xFEEDFACF ) and
2 of ($ui*) and filesize < 50MB
}
Suricata IDS Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"valtersit.com - Possible macOS UI-Redress Payload Delivery (CVE-2026-86911 correlated)"; flow:established,to_server; http.method; content:"GET"; http.uri; content:".dmg"; nocase; content:".app"; nocase; pcre:"/(clickjack|secureprompt|ui_?redress)/i"; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-86911; classtype:attempted-user; sid:8691101; rev:1; metadata:created_at 2026_01_01, cve CVE-2026-86911, confidence Low;)
Elastic Detection
// CVE-2026-86911: correlate app launch with immediate secure-prompt/consent activity on macOS.
sequence by host.id, user.name with maxspan=90s
[ process where process.name : "*.app/Contents/MacOS/*" and
process.executable : ("/tmp/*", "/var/folders/*", "/Users/Shared/*") ]
[ any where event.category : "process" and
( process.name : "*SecurityAgent*" or
process.command_line : "*consent*" or
process.command_line : "*prompt*" ) ]
Splunk SPL Query
index=endpoint sourcetype="macos:unified_log" OR sourcetype="osquery:process_events"
| eval proc=coalesce(Image, path, process_path)
| eval parent=coalesce(ParentImage, parent_path)
| where (like(proc, "%/tmp/%") OR like(proc, "%/Users/Shared/%") OR like(proc, "%/var/folders/%"))
AND (like(proc, "%.app/Contents/MacOS/%"))
| join type=left max=1 host [ search index=endpoint sourcetype="macos:unified_log"
("SecurityAgent" OR "secure prompt" OR "clickjack" OR "consent")
| eval consent_time=_time | rename host as host | fields host consent_time ]
| eval delta=consent_time-_time
| where delta>=0 AND delta<=90
| stats count min(delta) max(delta) values(proc) by host, user
| sort -count
| table host user count min(delta) max(delta) values(proc)
Wazuh OSSEC Rule
<group name="macos,cve_2026_86911,">
<rule id="869110" level="8">
<decoded_as>json</decoded_as>
<field name="event_type">process_start</field>
<field name="process_path">\.app/Contents/MacOS/</field>
<description>CVE-2026-86911 heuristic: macOS app binary launched from a suspicious path.</description>
<options>no_full_log</options>
</rule>
<rule id="869111" level="10" frequency="2" timeframe="90">
<if_matched_sid>869110</if_matched_sid>
<match>SecurityAgent|secure prompt|clickjack|consent</match>
<description>CVE-2026-86911 correlated pattern: secure-prompt/consent activity immediately following suspicious app launch.</description>
<mitre>
<id>T1068</id>
</mitre>
<options>no_full_log</options>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 2/4 — CLAIMED. A single source (NVD) indicates the issue is fixed in macOS Golden Gate 27; this has not been independently corroborated by a vendor advisory, CVE feed cross-check, or release-notes confirmation in the provided data. No vendor workaround and no vendor-published affected-version list were supplied. Treat the following as guidance conditioned on that caveat.
1) Immediate mitigations (pre-patch / unconfirmed patch window).
- Apply the principle of least privilege to local code execution: restrict which users can run arbitrary unsigned applications and enforce Gatekeeper / notarization policies so unsigned or ad-hoc-signed apps are blocked by default.
- Reduce the attack surface for CWE-1021 UI redress by keeping system UI/consent surfaces current and avoiding environments where a user routinely clicks through security prompts reflexively. User awareness messaging specific to consent-dialog integrity is the reasonable near-term compensating control for a UI:R-class vulnerability.
- If a patch is not confirmed deployed for a given endpoint, treat any unexpected security/consent prompt following a recently launched unfamiliar app as a potential indicator and require re-authentication before granting sensitive approvals.
- Monitor for apps executing from user-writable, untrusted locations (
/tmp,/var/folders,/Users/Shared) as a behavioral guardrail consistent with the local AV:L delivery requirement.
2) Patch / upgrade steps.
- Upgrade affected hosts to macOS Golden Gate 27 or later. Because this is a "fixed in version X" claim from a single source, verify the fix against the vendor's own release notes in your patch-management workflow before marking a device compliant.
- If endpoints are enrolled in MDM, use enforced OS update policies and track the installed macOS build string as the compliance artifact. Maintain an inventory of endpoints still on the pre-Golden-Gate-27 line and treat them as open findings until confirmed upgraded.
- Because patch confidence is 2/4, avoid closing the risk solely on the NVD claim: cross-reference the Apple security release that enumerates the CVE when available.
3) Long-term hardening.
- Maintain a verify-don't-assume patch process: a CVE is not closed until the vendor's own advisory or an installed-build check confirms remediation.
- Institute continuous monitoring of consent/prompt integrity events and window/UI-layering anomalies, since the class (CWE-1021) recurs across OS and web UIs and future variants are likely.
- Enforce application control and code-signing verification as standard macOS baseline to make local malicious-app delivery (the AV:L precondition) materially harder.
- Track exposure posture metrics on EPSS/KEV: although EPSS is low (0.00171) and KEV is negative today, prompt-integrity bypasses occasionally escalate in attacker interest once weaponized, so keep the CVE on a periodic re-evaluation cadence.
References
- NVD — CVE-2026-86911: https://nvd.nist.gov/vuln/detail/CVE-2026-86911 (primary source; CVSS 5.5, CWE-1021, patch claim: macOS Golden Gate 27)
- CWE-1021 — Improper Restriction of Rendered UI Layers or Frames: https://cwe.mitre.org/data/definitions/1021.html (weakness-class reference underpinning the clickjacking-protection bypass)
- FIRST EPSS — scoring for CVE-2026-86911: https://www.first.org/epss/ (EPSS 0.00171, 6.8th percentile; low near-term exploitation likelihood)
- CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog (CVE-2026-86911 is not listed; no confirmed in-the-wild activity)
- Apple Security Releases (vendor advisory to be cross-checked to confirm the macOS Golden Gate 27 fix): https://support.apple.com/en-us/HT201222
Threat actor / exploit-in-the-wild evidence: None. No PoC, no exploit code, no Nuclei template, no KEV entry, and no attributed campaign exist in the provided intelligence. The absence of public exploitation combined with EPSS 0.00171 and negative KEV status indicates a currently non-weaponized, patch-available local vulnerability. Distribution of this report should reflect that posture: monitor rather than treat as an active incident.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.