Apple macOS Screen Sharing Authentication Bypass — CVE-2026-65400
screensharingd lets a network attacker reach root and drop an XMRig miner on internet-exposed Macs — actively exploited since mid-August 2026Executive Summary
An attacker who can reach TCP/5900 on a Mac needs nothing but an IP address: CVE-2026-65400 is an authentication-bypass flaw in screensharingd, the daemon behind macOS's built-in Screen Sharing / VNC feature, caused by the Secure Remote Password (SRP) handshake's frame-length validator returning a stale success status instead of correctly rejecting malformed authentication data — the connection is then treated as authenticated with no valid credential ever supplied. From there the attacker rides the entitled SSFileCopySender/SSFileCopyReceiver file-transfer helpers (which carry the kTCCServiceSystemPolicyAllFiles entitlement) to read and write any file as root, install an SSH key and a KeepAlive LaunchDaemon for persistence, and drop XMRig 6.26.0 disguised as a hidden .config/sysmond binary masquerading as com.apple.airportd.
NCSC-NL confirmed active exploitation on multiple internet-exposed hosts on August 12, 2026 — in every case investigated, the attacker obtained root and installed a Monero miner. Microsoft Threat Intelligence confirmed exploitation was still ongoing as of August 18, 2026, the same day CISA added the CVE to its Known Exploited Vulnerabilities catalog. Apple shipped the fix on August 6, 2026 (macOS Tahoe 26.6.1, Sequoia 15.7.9, Sonoma 14.8.9); CISA subsequently rescored the bug from CVSS 7.1 to 9.8 on August 14 after assessing the attack as automatable. Public proof-of-concept code has been available since on or before August 12. An independent researcher scan found roughly 40,000 internet-reachable macOS Screen Sharing hosts, concentrated in U.S. residential IP space with a meaningful tail in university and institutional networks.
The single highest-value defensive move is exposure elimination, not detection: this is a pre-auth bug, so rotating VNC passwords, pruning allowed accounts, or disabling legacy VNC auth do nothing to close it — only patching (or removing the service from the internet) does. Detection in this pack is built to cover what happens after exposure — the process-tree, persistence, and cryptomining behaviors — because Falcon has no native visibility into the pre-auth SRP handshake itself.
Defender priority: Inventory every Mac with Screen Sharing / Remote Management enabled, confirm none has TCP/5900 reachable from the internet, and patch to Tahoe 26.6.1 / Sequoia 15.7.9 / Sonoma 14.8.9 today — this is a CISA KEV entry with a due date of 2026-08-21 and an automatable, root-yielding pre-auth exploit already active in the wild.
Source Review & Web Hunter Notes
Correction to initial intake: the three related CVEs (2026-43779, 2026-43777, 2026-43760) were not patched in the same August 6, 2026 advisory as CVE-2026-65400. Apple's own advisory pages (support.apple.com/en-us/148170, /148171) list only CVE-2026-65400 for the August 6 releases. NVD confirms all three related CVEs were published 2026-07-27 and fixed in macOS Tahoe 26.6 / Sequoia 15.7.8 / Sonoma 14.8.8 — a separate, earlier out-of-band update. CVE-2026-43760 in particular (the "confused-context" legacy-VNC file-copy privilege issue Huntress covers alongside 65400) requires the attacker to already hold valid legacy VNC credentials; it is a related but distinct bug from the pre-auth 65400 flaw this pack targets. Both are covered below where their telemetry overlaps.
| Tier | Source | Key Finding | Carry Forward |
|---|---|---|---|
| 1 | Apple Security Advisory (support.apple.com/en-us/148171, 148170) | Official CVE-2026-65400 description, discovery credit (Alfredo Pesoli / Bynario Atlas), patched versions, Aug 6 2026 release date | Yes |
| 1 | NVD CVE-2026-65400 / 43760 / 43779 / 43777 (JSON records) | CVSS vectors, CWE-287, CISA KEV add date (2026-08-18), due date (2026-08-21), automatable SSVC rating, exact patch/version ranges | Yes |
| 1 | CISA KEV Catalog alert (2026-08-18) | Formal KEV addition, BOD 26-04 remediation requirement, "Apple macOS Improper Authentication Vulnerability" name | Yes |
| 1 | Bynario Atlas blog (bynar.io) — discoverer's own writeup | Technical background on the related CVE-2026-43760 confused-context VNC file-copy bug; clarifies it as post-auth and distinct from 65400; CVSS 5.5 (Bynario's own scoring) vs 8.6 (NVD/CISA rescoring) — noted discrepancy, NVD figure used | Partial |
| 2 | NCSC-NL advisory (via Malwarebytes, Help Net Security, Tom's Hardware, SecurityWeek reporting) | Active exploitation confirmed 2026-08-12; root + Monero miner in every investigated case; initial informational advisory 2026-08-07 escalated 2026-08-12 after public PoC appeared | Yes |
| 2 | Microsoft Threat Intelligence (quoted via The Hacker News, 2026-08-15) | Full payload chain: file/SSH-key transfer via Screen Sharing → SSH persistence → history/log clearing → pf modification → XMRig 6.26.0 as hidden .config/sysmond, ad-hoc signed, masquerading as com.apple.airportd, KeepAlive LaunchDaemon; exploitation confirmed ongoing as of 2026-08-18 | Yes |
| 2 | Huntress technical blog | Root cause detail: SRP frame-length validator returns stale success status; SSFileCopySender/SSFileCopyReceiver helpers carry kTCCServiceSystemPolicyAllFiles entitlement (bypasses TCC); ES event ES_EVENT_TYPE_NOTIFY_SCREENSHARING_ATTACH with authentication_type: SRP as a native (non-Falcon) signal | Yes |
| 3 | The Hacker News (Ravie Lakshmanan, 2026-08-15) | Aggregation of Microsoft findings; researcher @osxreverser quote: ~40,000 internet-exposed Screen Sharing hosts, concentrated in U.S. residential IPs, some institutional/university hosts | Yes |
| 3 | SecurityWeek, Tom's Hardware, Help Net Security, Malwarebytes | Corroborating timeline (patch 8/6, NCSC-NL advisory 8/7→8/12, CISA rescore 8/14, KEV add 8/18), public PoC availability, consumer remediation guidance | Partial |
Web-hunter decision: no atomic file hash, C2/mining-pool domain, or wallet address has been publicly disclosed by any source reviewed as of this pack's build date. The Consolidated IOC Table and Falcon IOC CSV below ship confirmed behavioral indicators (file path, masqueraded bundle ID, miner version) and use explicit REPLACE_WITH_ placeholders for the undisclosed atomic fields rather than inventing values — see §10.
Hunt Brief & Attack Chain
Eight hunt hypotheses were mapped from the attack chain below, ordered high-to-low fidelity. Hypotheses 1–4 (screensharingd process-tree anomaly, privileged file-copy helper abuse, hidden-binary execution, bundle masquerade) have no legitimate benign equivalent and carry CONF HIGH. Hypotheses 5–8 (persistence, pf/log tampering, mining network egress) are individually higher-FP but strong in combination or when correlated to a recent screensharingd session.
| # | Step | Telemetry | Hunt Angle |
|---|---|---|---|
| 1 | Recon for internet-exposed port 5900 (Screen Sharing/VNC) | Perimeter/NGFW logs, external ASM scan, NetworkListenIP4 | Exposure hunt — find it before the attacker does |
| 2 | Pre-auth connect exploiting SRP frame-length validator stale-success bug — auth bypassed, no valid credential presented | macOS unified log (ES_EVENT_TYPE_NOTIFY_SCREENSHARING_ATTACH, authentication_type: SRP) — not visible to Falcon natively | Native audit-log hunt only — see §7; this is the pack's confirmed detection gap |
| 3 | Attacker drives SSFileCopySender/SSFileCopyReceiver (entitled kTCCServiceSystemPolicyAllFiles) for arbitrary root file read/write, bypassing TCC | ProcessRollup2/SyntheticProcessRollup2 | Q1, Q2 — screensharingd child-process anomaly + root-context helper invocation |
| 4 | SSH public key + scripts transferred via Screen Sharing file transfer; SSH persistence established | ProcessRollup2; native authorized_keys audit | Native audit-log hunt §7; correlate with Q1/Q2 timing |
| 5 | XMRig 6.26.0 dropped, ad-hoc signed, hidden at .config/sysmond, masquerading as com.apple.airportd | ProcessRollup2, NewExecutableWritten | Q3, Q4 — hidden-path binary + bundle masquerade |
| 6 | Persistence via LaunchDaemon with KeepAlive | ProcessRollup2 (launchctl load/bootstrap) | Q5 |
| 7 | pf (Packet Filter) rules modified; history and logs cleared to remove evidence | ProcessRollup2 | Q6 |
| 8 | Ongoing Monero mining — sustained CPU/GPU hijack, outbound stratum connections | NetworkConnectIP4 joined to ProcessRollup2 | Q7 |
Consolidated IOC Table
| Type | Value | Confidence | Action | Context | Expiry |
|---|---|---|---|---|---|
| filename | sysmond | high | hunt | Hidden XMRig binary basename, dropped inside a .config/ directory (Microsoft-reported via The Hacker News) | 2026-11-19 |
| bundle-id (spoofed) | com.apple.airportd | high | hunt | Spoofed Apple system bundle identifier used to mask the XMRig process/LaunchDaemon | 2026-11-19 |
| software | XMRig 6.26.0 | high | enrich | Cryptominer version dropped post-compromise (Microsoft-reported) | 2026-11-19 |
| process | SSFileCopySender / SSFileCopyReceiver | high | hunt | Legitimate Apple file-copy helpers, entitled kTCCServiceSystemPolicyAllFiles; abused for root file access (Huntress) | 2026-11-19 |
| port | 5900/tcp | high | hunt | Screen Sharing/VNC service port; internet exposure is the precondition for exploitation | 2027-02-19 |
| sha256 | REPLACE_WITH_SHA256 | low | pivot | No file hash publicly disclosed as of pack build date — placeholder for Falcon-observed sample | 2026-09-19 |
| domain | REPLACE_WITH_MINING_POOL_DOMAIN | low | pivot | No mining-pool/C2 domain publicly disclosed as of pack build date | 2026-09-19 |
| ssh-key-fingerprint | REPLACE_WITH_SSH_KEY_FP | low | pivot | Attacker installs an SSH public key for persistence; no specific key material published | 2026-09-19 |
No atomic hash, domain, or wallet address has been publicly attributed to this campaign as of the pack build date (2026-08-19). Ship the behavioral rows above for detection now; replace the placeholder rows the moment a corroborated atomic indicator is published or a sample is recovered in your own environment.
Affected Surface & Telemetry Matrix
| Surface | Required Telemetry | Priority | Gap Risk |
|---|---|---|---|
| macOS endpoint (Falcon sensor for Mac) — process/file/network | ProcessRollup2, SyntheticProcessRollup2, NewExecutableWritten, NetworkConnectIP4 | Critical | Medium — covers post-compromise behavior; no native pre-auth SRP handshake visibility |
| macOS unified log (native, non-Falcon) | log show/log stream predicate on screensharingd, ES_EVENT_TYPE_NOTIFY_SCREENSHARING_ATTACH | High | Low if forwarded to SIEM; High if not centrally collected |
| Network perimeter / NGFW / cloud security group | Inbound-connection logs on TCP/5900, NAT/port-forward rule inventory | Critical | High if perimeter logging/inventory is incomplete — this is the exposure precondition |
| MDM / fleet inventory (Jamf, Kandji, Addigy, etc.) | Screen Sharing / Remote Management enabled state, OS version/patch compliance | High | Medium — requires MDM query capability outside Falcon/CQL |
| SSH / identity | authorized_keys content audit, SSH login events | Medium | Medium — no dedicated Falcon macOS file-integrity event for this path; native audit only |
ATT&CK Mapping
| Tactic | Technique ID | Technique Name | Observed Behavior |
|---|---|---|---|
| Initial Access | T1190 | Exploit Public-Facing Application | Pre-auth SRP frame-length validator flaw in internet-exposed screensharingd (port 5900) |
| Initial Access | T1133 | External Remote Services | Legitimate Screen Sharing / Remote Management feature exposed to the internet and abused as the entry vector |
| Privilege Escalation | T1068 | Exploitation for Privilege Escalation | Entitled SSFileCopySender/SSFileCopyReceiver helpers grant root-level file read/write, bypassing TCC |
| Execution | T1059.004 | Command and Scripting Interpreter: Unix Shell | Post-compromise shell commands for persistence setup, pf modification, log clearing |
| Persistence | T1543.004 | Create or Modify System Process: Launch Daemon | KeepAlive LaunchDaemon installed to relaunch the hidden XMRig binary |
| Persistence | T1098.004 | Account Manipulation: SSH Authorized Keys | Attacker-controlled SSH public key added for durable remote access |
| Defense Evasion | T1036.005 | Masquerading: Match Legitimate Name or Location | XMRig binary named sysmond, hidden in .config/, bundle ID spoofed as com.apple.airportd |
| Defense Evasion | T1070.002 / T1070.003 | Indicator Removal: Clear System/Command History Logs | Attacker clears shell history and system logs post-compromise |
| Defense Evasion | T1562.004 | Impair Defenses: Disable or Modify System Firewall | Packet Filter (pf) rules modified to maintain access |
| Impact | T1496 | Resource Hijacking | XMRig 6.26.0 Monero cryptominer runs persistently on the compromised host |
Native Audit-Log Hunts
These checks cover the pre-auth handshake and filesystem artifacts that Falcon's macOS sensor does not natively expose as queryable CQL fields. Run via SSH, Falcon RTR, or MDM script deployment.
1 · Confirm Screen Sharing exposure & patch level
sw_vers -productVersion # Compare to patched: 14.8.9 (Sonoma) / 15.7.9 (Sequoia) / 26.6.1 (Tahoe) sudo lsof -iTCP:5900 -sTCP:LISTEN defaults read /Library/Preferences/com.apple.RemoteManagement.plist 2>/dev/null sudo launchctl list | grep -i screensharing
2 · Unified log — screensharingd auth events
log show --predicate 'process == "screensharingd"' --style syslog --last 24h log show --predicate 'eventMessage contains "SCREENSHARING_ATTACH"' --last 24h # Look for authentication_type: SRP sessions with no corresponding valid-credential entry
3 · Hidden miner artifact sweep
sudo find / -iname "sysmond" 2>/dev/null ls -la ~/.config/ 2>/dev/null sudo launchctl list | grep -i airportd plutil -p /Library/LaunchDaemons/*.plist 2>/dev/null | grep -i -B5 keepalive
4 · SSH authorized_keys audit
for u in /Users/*; do echo "== $u =="; sudo cat "$u/.ssh/authorized_keys" 2>/dev/null; done
5 · pf ruleset audit
sudo pfctl -sr sudo pfctl -a '*' -s rules # Compare against known-good baseline; flag any anchor not in change-control
6 · Log/history integrity check
ls -la ~/.bash_history ~/.zsh_history 2>/dev/null log show --predicate 'eventMessage contains "log erase"' --last 7d
CrowdStrike LogScale CQL Hunt Queries
Looks for: any process spawned directly by screensharingd other than the two documented file-copy helpers. Screen Sharing's normal operation only ever forks SSFileCopySender/SSFileCopyReceiver; a shell, curl, launchctl, or anything else as a direct child is the single strongest post-exploitation signal in this chain.
// HUNT: Screensharingd spawns unexpected child process // MITRE: T1210, T1068 // CONF: high FP: low COST: low | REQUIRES: ProcessRollup2/SyntheticProcessRollup2 (macOS sensor) // FALSE POSITIVES: none expected in normal operation — screensharingd has no legitimate reason to fork anything besides the two file-copy helpers // LOOKBACK: 7d (set via console time picker) #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | ParentBaseFileName=screensharingd | FileName!=/^(SSFileCopySender|SSFileCopyReceiver)$/i | table([ComputerName, UserName, ParentBaseFileName, FileName, ImageFileName, CommandLine, timestamp])
Looks for: SSFileCopySender/SSFileCopyReceiver — the entitled (kTCCServiceSystemPolicyAllFiles) helpers behind CVE-2026-65400's arbitrary-root-file-access primitive — running as root under a screensharingd parent. FP: legitimate admin-initiated Screen Sharing file transfers by an already-authenticated administrator will also match; correlate with Q1 and the native SRP-session audit in §7 to raise fidelity.
// HUNT: Privileged file-copy helper invoked as root via screensharingd // MITRE: T1068, T1005 // CONF: high FP: medium COST: low | REQUIRES: ProcessRollup2/SyntheticProcessRollup2 // FALSE POSITIVES: legitimate administrator-initiated Screen Sharing file transfer while properly authenticated // TUNING: exclude UserName values in your Screen Sharing admin allowlist and known maintenance windows; correlate with Q1 process-tree anomaly for higher fidelity // LOOKBACK: 7d #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^SSFileCopy(Sender|Receiver)$/i | ParentBaseFileName=screensharingd | UserName=root | table([ComputerName, UserName, FileName, ImageFileName, CommandLine, ParentBaseFileName, timestamp])
Looks for: execution or write of a binary named sysmond from inside a .config/ path — the exact hidden-dotfile placement Microsoft reported for the ad-hoc-signed XMRig 6.26.0 payload. sysmond is not an Apple binary name.
// HUNT: Hidden XMRig binary execution at .config/sysmond // MITRE: T1036.005, T1564.001, T1496 // CONF: high FP: low COST: low | REQUIRES: ProcessRollup2/SyntheticProcessRollup2, NewExecutableWritten // FALSE POSITIVES: near-zero — "sysmond" hidden inside .config/ has no known legitimate use // LOOKBACK: 14d #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2|NewExecutableWritten/ | FileName=/^sysmond$/i | ImageFileName=/\.config\//i | table([ComputerName, UserName, ImageFileName, FileName, CommandLine, SHA256HashData, timestamp])
Looks for: a process named airportd executing from anywhere other than the genuine Apple system path. Microsoft reported the attacker spoofs the com.apple.airportd bundle identifier to disguise the miner.
// HUNT: airportd masquerade — process running outside /System/Library // MITRE: T1036.005 // CONF: high FP: low COST: low | REQUIRES: ProcessRollup2/SyntheticProcessRollup2 // FALSE POSITIVES: none expected — the genuine airportd binary only ever runs from /System/Library // LOOKBACK: 14d #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^airportd$/i | ImageFileName!=/^\/System\/Library\//i | table([ComputerName, UserName, ImageFileName, FileName, CommandLine, ParentBaseFileName, timestamp])
Looks for: launchctl load/bootstrap invocations referencing airportd, sysmond, or a .config path — the KeepAlive LaunchDaemon persistence step. FP: legitimate software installers, MDM agents, and EDR/AV updaters register LaunchDaemons routinely.
// HUNT: LaunchDaemon load/bootstrap referencing spoofed name or hidden path // MITRE: T1543.004 // CONF: medium FP: medium COST: low | REQUIRES: ProcessRollup2/SyntheticProcessRollup2 // FALSE POSITIVES: legitimate installers, MDM agents (Jamf/Kandji/Addigy), and security tooling register LaunchDaemons frequently // TUNING: exclude ParentBaseFileName in {installer, softwareupdated, jamf, Kandji, munki} and exclude known-good plist label prefixes such as com.crowdstrike., com.jamf., com.microsoft., com.kandji. // LOOKBACK: 14d #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^launchctl$/i | CommandLine=/(load|bootstrap)/i | CommandLine=/(airportd|sysmond|\.config)/i | table([ComputerName, UserName, CommandLine, ParentBaseFileName, timestamp])
Looks for: the reported cleanup cluster — pfctl -e/-f (enable/reload Packet Filter) alongside history clearing (history -c, deletion of bash_history) or unified-log erasure. FP: legitimate firewall administration and routine log-rotation scripts.
// HUNT: pf rule modification + history/log clearing cluster // MITRE: T1562.004, T1070.002, T1070.003 // CONF: medium FP: medium COST: low | REQUIRES: ProcessRollup2/SyntheticProcessRollup2 // FALSE POSITIVES: legitimate pf administration by IT/security staff; routine log-rotation or history-cleanup scripts // TUNING: exclude ParentBaseFileName in known config-management tooling (ansible, puppet, chef, jamf); raise confidence by correlating with a screensharingd session (Q1/Q2) on the same host within the prior hour // LOOKBACK: 7d #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^(pfctl|bash|zsh|sh)$/i | CommandLine=/(pfctl\s+-[ef]|history\s+-c|rm\s+.*bash_history|log\s+erase\s+--all)/i | table([ComputerName, UserName, FileName, CommandLine, ParentBaseFileName, timestamp])
Looks for: outbound connections on ports commonly used by XMRig/Monero stratum pools, joined back to the initiating process and filtered to binaries outside standard application paths. FP: legitimate crypto-mining software knowingly run by a user, and some dev/VPN tooling that shares these high ports.
// HUNT: Outbound connections to common XMRig/Monero stratum ports // MITRE: T1496, T1571 // CONF: medium FP: high COST: medium | REQUIRES: NetworkConnectIP4 joined to ProcessRollup2/SyntheticProcessRollup2 // FALSE POSITIVES: legitimate/authorized mining software, dev or gaming tools sharing common high ports // TUNING: maintain a ComputerName allowlist for any host with sanctioned mining/dev use; narrow RemotePort to the specific stratum ports your threat intel confirms; require ImageFileName outside /Applications and /usr to cut noise further // LOOKBACK: 3d #event_simpleName=NetworkConnectIP4 | in(RemotePort, values=[3333, 4444, 5555, 7777, 14444, 14433, 45700]) | rename(field=ContextProcessId_decimal, as=TargetProcessId_decimal) | join(query={#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/}, field=TargetProcessId_decimal, include=[ImageFileName, FileName, CommandLine]) | ImageFileName!=/^\/(Applications|usr)\//i | table([ComputerName, UserName, ImageFileName, FileName, RemoteAddressIP4, RemotePort, CommandLine, timestamp])
CrowdStrike Custom IOA Recommendations
Q1, Q3, and Q4 have no legitimate benign equivalent and are strong Custom IOA candidates for prevent-mode or high-confidence alerting. Q2, Q5, Q6, and Q7 remain Investigate-only hunt queries until tuned against your environment's baseline.
| IOA Name | Pattern | Exclusions | Deployment Path |
|---|---|---|---|
| DETECT — Screensharingd Anomalous Child Process | Parent = screensharingd; child ≠ SSFileCopySender/SSFileCopyReceiver | None known — start in Detect-only, promote to Prevent after a 14-day burn-in with zero benign hits | Custom IOA → Detect → 14-day validation → Prevent |
| DETECT — Hidden Binary at .config/sysmond | FileName matches ^sysmond$ AND ImageFileName contains .config/ | None known | Custom IOA → Prevent (high confidence, no legitimate use case) |
| DETECT — airportd Bundle Masquerade | FileName matches ^airportd$ AND ImageFileName not under /System/Library/ | None known | Custom IOA → Prevent |
Machine-Readable IOC Appendix
type,value,action,severity,expiration,description,tags filename,sysmond,detect,high,2026-11-19,Hidden XMRig binary basename inside .config/ directory,campaign:AppleScreenSharing-CVE-2026-65400 sha256,REPLACE_WITH_SHA256,prevent,critical,2027-02-19,XMRig 6.26.0 sample dropped via Screen Sharing file transfer,campaign:AppleScreenSharing-CVE-2026-65400 domain,REPLACE_WITH_MINING_POOL_DOMAIN,detect,high,2026-09-19,Suspected XMRig mining pool endpoint - not publicly disclosed as of pack build date,campaign:AppleScreenSharing-CVE-2026-65400
# Hidden miner binary path pattern */.config/sysmond # Spoofed bundle identifier com.apple.airportd (running outside /System/Library/CoreServices/) # KeepAlive LaunchDaemon referencing the above launchctl load|bootstrap ... (airportd|sysmond|.config) # Screensharingd forking anything other than its two documented helpers parent=screensharingd child NOT IN (SSFileCopySender, SSFileCopyReceiver) # Post-compromise cleanup cluster pfctl -e|-f + history -c | rm *bash_history | log erase --all
Payload: XMRig 6.26.0 (Monero cryptominer, legitimate open-source
tool abused post-compromise; ad-hoc signed by attacker)
Vuln daemon: screensharingd (/System/Library/CoreServices/RemoteManagement/
screensharingd.bundle/)
Abused helpers: SSFileCopySender, SSFileCopyReceiver
(entitlement: kTCCServiceSystemPolicyAllFiles)
Primary CVE: CVE-2026-65400 (CVSS 9.8, CWE-287, pre-auth)
Related CVEs (separate July 27 2026 advisory, NOT the same patch as 65400):
CVE-2026-43779 (CVSS 9.8, network interception logic issue)
CVE-2026-43777 (CVSS 7.5, remote DoS)
CVE-2026-43760 (CVSS 8.6, post-auth legacy-VNC file-copy
confused-context privilege issue)
Discoverer: Alfredo Pesoli (@__rev), Bynario Atlas (bynar.io)
# Patch level (must be >= one of these) sw_vers -productVersion # 14.8.9 / 15.7.9 / 26.6.1 # Is Screen Sharing listening? sudo lsof -iTCP:5900 -sTCP:LISTEN # Is it reachable from the internet? (run from outside the network) nc -zv -w3 <public-ip> 5900 # Fleet-wide via MDM: query Remote Management enabled-state # and OS version compliance across all managed Macs
Detection Validation Gates
| Gate | Requirement |
|---|---|
| Telemetry ready | Falcon sensor for Mac deployed and healthy on target fleet; macOS unified log forwarding configured for the native audit hunts in §7 (Falcon alone does not cover the pre-auth SRP handshake) |
| Benign baseline | Run Q1 and Q4 for a 14-day lookback with zero hits before promoting to Prevent; any hit during baseline must be triaged, not excluded blindly |
| Positive tests | Confirm Q1/Q2 fire against a controlled Screen Sharing file-transfer session in a lab; confirm Q3/Q4 fire against a benign process deliberately named/placed to match the pattern (do not test with live XMRig) |
| Promotion | Q1, Q3, Q4 → Custom IOA Prevent after burn-in (§9). Q2, Q5, Q6, Q7 remain Investigate-only until FP is tuned against your environment's actual admin/maintenance tooling |
Hardening — Tiered
Patch to the fixed macOS version — Tahoe 26.6.1 / Sequoia 15.7.9 / Sonoma 14.8.9. (MITRE M1051 Update Software.) Verify: sw_vers -productVersion. This is the only control that closes the pre-auth bypass itself.
Disable Screen Sharing / Remote Management on any Mac that does not have an active business need for it. (MITRE M1042 Disable or Remove Feature or Program.) Verify: sudo launchctl list | grep -i screensharing returns nothing.
Block inbound TCP/5900 at the network perimeter for every Mac, regardless of patch state — defense in depth against the next Screen Sharing CVE. (MITRE M1030 Network Segmentation / M1037 Filter Network Traffic.) Verify: external port scan or ASM tool confirms 5900 unreachable from the internet.
If Screen Sharing is required, tunnel it behind VPN/Zero Trust access rather than direct internet exposure, and disable legacy VNC-password authentication entirely in favor of managed/Apple ID auth. (MITRE M1035 Limit Access to Resource Over Network.) ⚠ best-practice, no formal CIS macOS benchmark item maps 1:1 to this control — cite Apple's own Remote Management guidance.
Deploy an MDM query (Jamf/Kandji/Addigy) across the fleet for Screen Sharing enabled-state and OS patch compliance; remediate non-compliant hosts on a defined SLA. (MITRE M1047 Audit.)
Forward macOS unified log and Falcon telemetry to a central SIEM so the §7 native hunts (screensharingd auth events, LaunchDaemon/plist changes, authorized_keys audits) run continuously rather than ad hoc. (MITRE M1047 Audit.)
Stand up continuous external attack-surface monitoring for the macOS fleet (recurring Shodan/Censys-style self-scans or a commercial ASM tool) so an exposed Screen Sharing port is caught before an advisory does. (MITRE M1016 Vulnerability Scanning.)
LaunchDaemon/LaunchAgent integrity baselining — file-integrity monitoring on /Library/LaunchDaemons/ and /Library/LaunchAgents/ to catch unauthorized persistence going forward, independent of this specific CVE. (MITRE M1022 Restrict File and Directory Permissions.)
Align patch SLAs to CISA KEV due dates (BOD 26-04) for every internet-facing service, not only macOS — this incident's timeline (patch 8/6 → active exploitation confirmed 8/12 → KEV add 8/18, due 8/21) is the template for how fast a pre-auth root bug moves from disclosure to mass exploitation.
Deployable Playbooks
Playbook A — Emergency Patch + Disable Exposure
Step 1 — Verify current OS version
sw_vers -productVersion
Prerequisites: none. Reboot required: no. Rollback: none required (read-only check).
Step 2 — Apply the security update
softwareupdate -l sudo softwareupdate -i "<update-label-from-list>" --restart
Prerequisites: admin credentials; network access to Apple software-update servers; typical combo-update free-space headroom (15+ GB recommended). Reboot required: yes — the update requires a restart. Rollback: none required — downgrading a security patch is not supported by Apple; if an incompatibility surfaces, pause further fleet rollout via MDM staged deployment rather than reverting the patched host.
Step 3 — Disable Screen Sharing / Remote Management if not required
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -deactivate -stop sudo launchctl disable system/com.apple.screensharing
Prerequisites: admin credentials; confirmed no legitimate remote-support workflow depends on the service. Reboot required: no. Rollback: sudo launchctl enable system/com.apple.screensharing, then re-enable via System Settings → General → Sharing → Screen Sharing.
Step 4 — Block inbound TCP/5900 at the perimeter
echo 'block in proto tcp from any to any port 5900' | sudo pfctl -a com.company/block5900 -f - sudo pfctl -e
Prerequisites: pf available on the gateway/host; admin access; adjust the anchor name to your environment's convention. Reboot required: no. Rollback: sudo pfctl -a com.company/block5900 -F all to remove the anchor's rules; only run sudo pfctl -d if pf was disabled before this change.
Playbook B — Incident Triage: Confirm or Reject Compromise on a Suspect Host
Step 1 — Snapshot LaunchDaemons and compare to baseline
ls -la /Library/LaunchDaemons/ /Library/LaunchAgents/ ~/Library/LaunchAgents/ 2>/dev/null plutil -p /Library/LaunchDaemons/*.plist 2>/dev/null | grep -i -B5 keepalive
Prerequisites: local/remote shell access (Falcon RTR or physical/SSH). Reboot required: no. Rollback: none required (read-only).
Step 2 — Search for the hidden miner artifact
sudo find / -iname "sysmond" 2>/dev/null ls -la ~/.config/ 2>/dev/null
Prerequisites: shell access; may take several minutes on large volumes. Reboot required: no. Rollback: none required.
Step 3 — Inspect SSH authorized_keys for attacker-added entries
for u in /Users/*; do echo "== $u =="; sudo cat "$u/.ssh/authorized_keys" 2>/dev/null; done
Prerequisites: root/sudo. Reboot required: no. Rollback: none required (read-only) — if an unauthorized key is found, move to the Containment Runbook's eradication phase and preserve a copy as evidence before removing it.
Step 4 — Check pf ruleset for attacker-added anchors
sudo pfctl -sr sudo pfctl -a '*' -s rules
Prerequisites: root/sudo. Reboot required: no. Rollback: none required (read-only).
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| Isolate | Network-isolate the host via Falcon RTR containment; add a secondary block at the perimeter firewall in case containment is bypassed | SOC / IR | Isolation timestamp, Falcon containment confirmation |
| Eradicate | Capture a forensic triage collection (memory, relevant plists, logs) before deleting anything; kill the XMRig/sysmond/spoofed-airportd process; remove the KeepAlive LaunchDaemon plist; delete the hidden .config/sysmond binary; remove the attacker's SSH key from authorized_keys; revert pf ruleset to the known-good baseline; rotate local admin/service credentials on the host | IR / Endpoint Engineering | Pre-eradication forensic collection, list of removed artifacts, credential-rotation confirmation |
| Recover | Patch to the fixed macOS version; re-enable Screen Sharing only if required and only via VPN/Zero Trust — never direct internet exposure; restore from known-good backup or re-image if root access duration is unknown or extended | Endpoint Engineering / IT | sw_vers confirmation, clean post-remediation scan result |
| Post-incident | Review MDM inventory for other exposed Macs; enroll the fleet in continuous external-exposure monitoring; update detections/IOAs based on findings; brief stakeholders | SOC / IR Lead | After-action report, updated asset inventory |
Detection Coverage Map
| Technique | Behavior | CQL | IOA | Coverage |
|---|---|---|---|---|
| T1190 / CWE-287 — pre-auth SRP bypass itself | Stale-success frame-length validator accepts an unauthenticated Screen Sharing session | None — not exposed as a Falcon macOS field | None | GAP native audit-log hunt only (§7) |
| T1068 — privileged helper abuse | SSFileCopySender/Receiver root file access | Q1, Q2 | Q1 candidate | Good |
| T1036.005 — masquerading | Hidden sysmond binary, spoofed airportd bundle | Q3, Q4 | Q3, Q4 candidates | Good |
| T1543.004 — LaunchDaemon persistence | KeepAlive LaunchDaemon referencing hidden payload | Q5 | Not yet (FP medium) | Partial |
| T1098.004 — SSH key persistence | Attacker SSH public key added to authorized_keys | None — no Falcon macOS file-write event confirmed for this path | None | GAP native audit-log hunt only (§7) |
| T1562.004 / T1070.002 / T1070.003 — defense evasion | pf modification, history/log clearing | Q6 | Not yet (FP medium) | Partial |
| T1496 — resource hijacking | XMRig mining, outbound stratum connections | Q7 | Not yet (FP high) | Partial |
Two confirmed gaps remain: the pre-auth handshake itself and SSH-key persistence are only covered by the native, non-CQL audit hunts in §7 — Falcon's macOS sensor does not currently expose a queryable field for either. All CQL queries must clear the validation gates in §11 before promotion from Investigate-only to Custom IOA.
Hunt Summary Ticket
TITLE: Apple macOS Screen Sharing Pre-Auth Bypass (CVE-2026-65400) —
Root Compromise + XMRig Cryptojacking Hunt
SEVERITY: Critical (CVSS 9.8) — CISA KEV, actively exploited, automatable
SCOPE: All macOS endpoints, fixed macOS < 14.8.9 / 15.7.9 / 26.6.1,
especially any host with Screen Sharing / Remote Management
enabled and TCP/5900 internet-reachable
HYPOTHESIS: An unpatched, internet-exposed Mac was reached via the SRP
pre-auth bypass, giving the attacker root through the entitled
SSFileCopySender/Receiver helpers, followed by SSH-key and
LaunchDaemon persistence and an XMRig 6.26.0 miner hidden at
.config/sysmond masquerading as com.apple.airportd
QUERIES: Q1-Q7 (section 8); native audit hunts 1-6 (section 7)
DO FIRST: 1) Inventory Screen Sharing-enabled Macs and confirm patch level
2) Confirm none has TCP/5900 reachable from the internet
3) Run Q1 and Q3 (highest confidence, lowest FP) fleet-wide
FINDINGS: [populate per engagement]
GAPS: Pre-auth SRP handshake and SSH authorized_keys writes are not
natively visible to Falcon on macOS — covered only by section 7
ACTIONS: Patch to Tahoe 26.6.1 / Sequoia 15.7.9 / Sonoma 14.8.9;
disable Screen Sharing where not required; block inbound
TCP/5900 at the perimeter; run playbooks A and B (section 13)
OWNER: [assign per engagement]
VERSION: v0.1 (2026-08-19)
Changelog
References
| Tier | Source | Used For | Access Date |
|---|---|---|---|
| 1 | Apple — About the security content of macOS Sequoia 15.7.9 | Official CVE-2026-65400 advisory text, discovery credit | 2026-08-19 |
| 1 | Apple — About the security content of macOS Tahoe 26.6.1 | Confirms Aug 6 2026 advisory covers only CVE-2026-65400 | 2026-08-19 |
| 1 | NVD — CVE-2026-65400 | CVSS vector, CWE-287, CISA KEV dates, SSVC automatable rating | 2026-08-19 |
| 1 | NVD — CVE-2026-43760 | Confirms July 27 2026 patch date, CVSS 8.6, distinct from 65400 | 2026-08-19 |
| 1 | NVD — CVE-2026-43779 | Confirms July 27 2026 patch date, CVSS 9.8, network interception logic issue | 2026-08-19 |
| 1 | NVD — CVE-2026-43777 | Confirms July 27 2026 patch date, CVSS 7.5, remote DoS | 2026-08-19 |
| 1 | CISA — Adds Four Known Exploited Vulnerabilities to Catalog | KEV addition date, BOD 26-04 remediation requirement | 2026-08-19 |
| 1 | Bynario Atlas — discoverer's technical writeup | CVE-2026-43760 background, relationship to CVE-2026-65400 | 2026-08-19 |
| 2 | The Hacker News — Apple macOS Screen Sharing Flaw Exploited to Install Monero Miner | Microsoft's full payload chain quote, exposure researcher stat | 2026-08-19 |
| 2 | Huntress — From Screen Share to Root Access | SRP root-cause detail, SSFileCopySender/Receiver entitlement, ES event names | 2026-08-19 |
| 3 | SecurityWeek — Recent macOS Screen Sharing Vulnerability Exploited in Attacks | NCSC-NL quote, public PoC timeline, exposure count | 2026-08-19 |
| 3 | Malwarebytes — Update your Mac | Consumer remediation guidance, exposure context | 2026-08-19 |
| 3 | Tom's Hardware — Critical macOS Screen Sharing flaw | Timeline corroboration (patch/NCSC-NL/CISA rescore) | 2026-08-19 |
| 3 | Help Net Security — Attackers exploit patched macOS Screen Sharing flaw | NCSC-NL advisory escalation timeline (Aug 7 → Aug 12) | 2026-08-19 |