Apple left the front door's deadbolt in the 'unlocked' position while telling you it was merely 'loose'
CVE-2026-65400 is a pre-authentication remote code execution vulnerability in macOS Screen Sharing (screensharingd). A flaw in the Secure Remote Password (SRP) authentication handler causes a stale success state to persist after a malformed frame-length validation, allowing an attacker to establish an authenticated session without any credentials at all — no macOS account, no VNC password. The resulting session inherits the privileges of SSFileCopySender, which runs as root with Apple's Full Disk Access entitlement (kTCCServiceSystemPolicyAllFiles), bypassing TCC protections entirely. Affected versions span the entire current macOS lineup: Tahoe < 26.6.1, Sequoia < 15.7.9, and Sonoma < 14.8.9.
Apple rated this HIGH 7.1 with a CVSS vector claiming PR:L (low privileges required) and I:L (low integrity impact). Both are factually wrong. The bug is pre-authentication — PR:N — and the resulting access is root-level arbitrary file read/write with demonstrated RCE via LaunchDaemon injection, making integrity impact I:H. A corrected vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) yields a base score of 9.8. The vendor's label actively misleads defenders into deprioritizing a pre-auth root RCE with public proof-of-concept code.
5 steps from start to impact.
Locate Screen Sharing listeners
_rfb._tcp) make discovery trivial without active scanning. Cloud-hosted Mac fleets (MacStadium, AWS EC2 Mac) frequently expose this port on routable IPs.- Target macOS host has Screen Sharing enabled
- Port 5900 is reachable from attacker's network position
- Screen Sharing is off by default on macOS — must be explicitly enabled
- Most enterprise Macs are behind NAT/firewall with 5900 blocked at the perimeter
_rfb banner; internal network scan with nmap -p5900 --openSend malformed SRP frame
screensharingd frame-length validation routine hits an error path that fails to clear the prior authentication state, leaving a stale 'success' flag. No credentials are transmitted or verified. Public PoC code by Ryan Dowd demonstrates this step.- TCP connection to port 5900 established
- None — once port 5900 is reachable, this step is deterministic and requires zero interaction
authentication_type set to SRP (not RSA-SRP) in Screen Sharing logs — this is anomalousObtain authenticated VNC session as root
- Successful SRP bypass from step 2
- None — automatic consequence of the bypass
screensharingd child processes; alert on VNC sessions where the authenticated user is rootArbitrary file read/write with TCC bypass
SSFileCopySender and SSFileCopyReceiver, which run as root with the kTCCServiceSystemPolicyAllFiles entitlement. This bypasses macOS Transparency, Consent, and Control (TCC) protections, granting access to all files on disk including Keychain items, browser data, and credentials.- Active Screen Sharing session from step 3
- None
/Library/LaunchDaemons/, /etc/, and user shell profilesPersistent root RCE via LaunchDaemon injection
/Library/LaunchDaemons/ or modifies shell startup files (.zshrc, .bash_profile) to establish persistent root-level code execution. This survives reboots and provides a permanent backdoor. The attacker can then pivot laterally, exfiltrate secrets, or — on CI/CD build hosts — inject into the software supply chain.- File write capability from step 4
- EDR agents may detect LaunchDaemon creation, but the attacker is already root and can tamper with or unload the agent
launchdThe supporting signals.
| In-the-wild exploitation | No confirmed in-the-wild exploitation as of 2026-08-09. Not listed on CISA KEV. However, the vulnerability is 3 days old with public PoC — exploitation is expected imminently. |
|---|---|
| Proof-of-concept | Public. Ryan Dowd published technical analysis of the SRP bypass with working arbitrary file read/write. Follow-on researchers demonstrated full RCE via LaunchDaemon injection. No named GitHub repo yet, but the technique is fully documented. |
| EPSS | 0.00304 (low, ~top 30th percentile) — EPSS lags on fresh CVEs and does not yet reflect the public PoC or pre-auth nature. |
| KEV status | Not listed as of 2026-08-09. Given the pre-auth RCE nature and public PoC, KEV addition is probable if exploitation is confirmed. |
| CVSS vector (vendor) | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N (7.1 HIGH) — miscored: PR should be N (pre-auth), I should be H (root file writes), A should be at least L. |
| CVSS vector (corrected) | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H → 9.8 CRITICAL |
| Affected versions | All macOS versions currently supported: Tahoe < 26.6.1, Sequoia < 15.7.9, Sonoma < 14.8.9 |
| Fixed versions | macOS Tahoe 26.6.1, macOS Sequoia 15.7.9, macOS Sonoma 14.8.9 (all released 2026-08-06) |
| Scanning/exposure | Shodan shows hundreds of thousands of VNC (port 5900) listeners globally. MacStadium default Sonoma images ship with Screen Sharing enabled. AWS EC2 Mac instances often enable Screen Sharing for management. Internal enterprise exposure depends on IT remote-support workflows. |
| Researcher | Alfredo Pesoli (@__rev) via Bynario Atlas. Technical deep-dive by Ryan Dowd. |
noisgate verdict.
The vendor's CVSS vector is factually incorrect — this is a pre-authentication root RCE, not a low-privilege confidentiality leak, and the corrected base score is 9.8. The single most decisive factor is the supply-chain pivot via CI/CD Mac build farms: cloud-hosted Mac infrastructure (MacStadium, AWS EC2 Mac) ships with Screen Sharing enabled by default, and compromise of a build host yields code-signing key theft and artifact poisoning across the entire downstream software supply chain.
Why this verdict
- Vendor CVSS is wrong: The vector claims
PR:Lbut the bug is pre-authentication — no credentials of any kind are required. The corrected vector isPR:NwithI:H/A:H, yielding a base score of 9.8 vs the vendor's 7.1. This is not a matter of interpretation; the attacker sends zero credentials. - Public PoC with root RCE: Proof-of-concept code demonstrating arbitrary file reads/writes exists publicly, and follow-on work has weaponized it to full persistent RCE via LaunchDaemon injection. The exploit is deterministic — no race conditions, no heap grooming, no ASLR bypass needed.
- Role multiplier — CI/CD build farms are supply-chain targets: MacStadium's default macOS images ship with Screen Sharing enabled. AWS EC2 Mac instances commonly enable it for management. These hosts hold code-signing keys, build artifacts, and CI secrets. Compromise of a single build host enables supply-chain poisoning across all downstream consumers. This is a supply-chain-scale blast radius, triggering the CRITICAL floor.
- TCC bypass amplifies impact: The exploit inherits Full Disk Access via
SSFileCopySender's entitlement, bypassing macOS's primary user-consent security boundary. This means Keychain extraction, browser credential theft, and access to all protected directories — no user interaction or consent prompt. - Zero friction post-reachability: Once port 5900 is reachable, the entire chain from initial contact to persistent root backdoor requires zero user interaction, zero valid credentials, and zero complex exploitation techniques. The attack is fully automatable.
Why not higher?
A 9.1 (rather than 9.8) acknowledges that Screen Sharing is off by default on macOS, meaning the vulnerability requires an explicit configuration change to become exploitable. On endpoints where Screen Sharing is never enabled, the attack surface simply does not exist. This default-off posture meaningfully reduces the fraction of the macOS installed base that is exposed, even though the exposed subset faces catastrophic consequences.
Why not lower?
Downgrading below CRITICAL would require ignoring three compounding factors: (1) the bug is genuinely pre-authentication with public PoC, (2) the vendor's own CVSS is provably miscored by 2.7 points, and (3) cloud-hosted Mac CI/CD infrastructure — a meaningful and growing segment — ships with Screen Sharing enabled by default, creating a supply-chain-scale blast radius that floors the verdict at CRITICAL regardless of the default-off posture on consumer Macs.
What to do — in priority order.
- Disable Screen Sharing immediately on all hosts where it is not operationally required — This eliminates the attack surface entirely. Use MDM (Jamf, Kandji, Mosyle) to push a configuration profile that disables Screen Sharing fleet-wide. Deploy within the noisgate mitigation SLA of ≤ 3 days for CRITICAL findings. Command:
sudo launchctl disable system/com.apple.screensharing - Block port 5900 at network boundaries and host firewalls — Prevent any external or cross-segment reachability to Screen Sharing listeners. Apply ACLs on firewalls and configure macOS Application Firewall or pf to drop inbound 5900. Even if Screen Sharing must remain on for IT workflows, restrict source IPs to a jump host.
- Require VPN or SSH tunnel for all remote Mac management — Never expose port 5900 directly, even on internal networks. Route all Screen Sharing traffic through an authenticated VPN or SSH tunnel (
ssh -L 5900:localhost:5900 user@host). This adds an authentication layer the vulnerability cannot bypass. - Deploy macOS patches (Tahoe 26.6.1 / Sequoia 15.7.9 / Sonoma 14.8.9) within 3 days — The patches are available now. Prioritize CI/CD build hosts, cloud-hosted Macs, and any system where Screen Sharing is enabled. Use MDM to enforce the update. This is the noisgate remediation SLA for CRITICAL — ≤ 90 days — but given the pre-auth RCE with public PoC, push for ≤ 3 days on exposed hosts.
- Audit for compromise indicators — Search for: new plists in
/Library/LaunchDaemons/, modifications to shell profiles (.zshrc,.bash_profile),screensharingdlogs showingauthentication_type: SRP(notRSA-SRP), and root-owned VNC sessions. Any host with Screen Sharing enabled since August 6 should be treated as potentially compromised.
- macOS Gatekeeper / notarization — does not help because the attacker writes files directly as root via the Screen Sharing file-copy mechanism, bypassing Gatekeeper entirely
- TCC prompts — do not help because
SSFileCopySenderalready holds thekTCCServiceSystemPolicyAllFilesentitlement; no user consent dialog is triggered - Requiring VNC password — does not help because the SRP bypass occurs before any password verification; the legacy VNC password setting is irrelevant to this attack path
- Network-level IDS signature for VNC auth failure — does not help because the attack produces a *successful* authentication, not a failed one; signature-based detection for brute-force VNC will miss it entirely
Crowdsourced verification payload.
Run this script on each macOS host you want to check. No special privileges required for the version check. Execute with: bash check_cve_2026_65400.sh. The script checks both the OS patch level and whether Screen Sharing is currently enabled.
#!/bin/bash
# check_cve_2026_65400.sh
# Checks macOS patch level for CVE-2026-65400 (Screen Sharing SRP bypass)
# Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN
OS_VERSION=$(sw_vers -productVersion 2>/dev/null)
if [ -z "$OS_VERSION" ]; then
echo "UNKNOWN — not a macOS system or sw_vers unavailable"
exit 2
fi
MAJOR=$(echo "$OS_VERSION" | cut -d. -f1)
MINOR=$(echo "$OS_VERSION" | cut -d. -f2)
PATCH=$(echo "$OS_VERSION" | cut -d. -f3)
PATCH=${PATCH:-0}
# Check Screen Sharing status
SS_ENABLED="unknown"
if launchctl list com.apple.screensharing &>/dev/null; then
SS_ENABLED="yes"
else
SS_ENABLED="no"
fi
echo "macOS version: $OS_VERSION"
echo "Screen Sharing enabled: $SS_ENABLED"
VULNERABLE=0
# macOS Tahoe 26.x — fixed in 26.6.1
if [ "$MAJOR" -eq 26 ]; then
if [ "$MINOR" -lt 6 ]; then
VULNERABLE=1
elif [ "$MINOR" -eq 6 ] && [ "$PATCH" -lt 1 ]; then
VULNERABLE=1
fi
# macOS Sequoia 15.x — fixed in 15.7.9
elif [ "$MAJOR" -eq 15 ]; then
if [ "$MINOR" -lt 7 ]; then
VULNERABLE=1
elif [ "$MINOR" -eq 7 ] && [ "$PATCH" -lt 9 ]; then
VULNERABLE=1
fi
# macOS Sonoma 14.x — fixed in 14.8.9
elif [ "$MAJOR" -eq 14 ]; then
if [ "$MINOR" -lt 8 ]; then
VULNERABLE=1
elif [ "$MINOR" -eq 8 ] && [ "$PATCH" -lt 9 ]; then
VULNERABLE=1
fi
# Older macOS versions — likely vulnerable but no patch available
elif [ "$MAJOR" -lt 14 ]; then
echo "VULNERABLE — macOS $OS_VERSION is end-of-life and has no patch for CVE-2026-65400"
if [ "$SS_ENABLED" = "yes" ]; then
echo "** CRITICAL: Screen Sharing is ENABLED on an unpatched, EOL system **"
fi
exit 1
else
echo "UNKNOWN — unexpected macOS version $OS_VERSION"
exit 2
fi
if [ "$VULNERABLE" -eq 1 ]; then
echo "VULNERABLE — macOS $OS_VERSION is affected by CVE-2026-65400"
if [ "$SS_ENABLED" = "yes" ]; then
echo "** CRITICAL: Screen Sharing is ENABLED — this host is actively exploitable **"
echo "Immediate action: sudo launchctl disable system/com.apple.screensharing && sudo launchctl bootout system/com.apple.screensharing"
else
echo "Screen Sharing is disabled — attack surface is not exposed, but patch promptly"
fi
exit 1
else
echo "PATCHED — macOS $OS_VERSION includes the fix for CVE-2026-65400"
exit 0
fiIf you remember one thing.
Sources
- NVD — CVE-2026-65400
- GBHackers — Critical macOS RCE Vulnerability
- CyberPress — Critical macOS Screen Sharing Flaw
- 9to5Mac — Apple Screen Sharing Vulnerability
- iClarified — Apple Releases macOS Updates
- MacObserver — Update Your Mac Now
- CVE.org — CVE-2026-65400
- SecurityWeek — Microsoft, Apple Release Fresh Security Updates
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.