A malicious webpage that can crash your browser tab but not (publicly) own your device
CVE-2026-39872 is a WebKit memory-handling defect (CWE-119, out-of-bounds memory access class) in Apple's browser engine. Apple's advisory describes the impact narrowly: *processing maliciously crafted web content may lead to an unexpected Safari crash*. No language about arbitrary code execution, sandbox escape, or kernel impact. Affected: Safari, iOS, iPadOS, macOS prior to the 26.5.2 train. Fixed in Safari 26.5.2, iOS/iPadOS 26.5.2, macOS Tahoe 26.5.2. Credited to Utkarsh Pal and Ignacio Sanmillan (@ulexec).
Vendor CVSS of 6.5 (MEDIUM) with C:N/I:N/A:H matches Apple's *crash-only* description: the only impacted dimension is availability of the browser process. That's a fair label — but for an enterprise managing 10k hosts the operational reality is even softer. A tab crash is not a denial of service of any consequential resource; Safari restores tabs, the OS keeps running, no data is exposed. Reality is LOW, not MEDIUM.
4 steps from start to impact.
Attacker hosts malicious web content
- Attacker-controlled URL or ability to inject content into a page the victim loads
- Apple's WebKit JIT and structure-ID hardening absorb most naive memory bugs before they reach exploitable state
Victim navigates to the page (UI:R)
- User loads attacker content in WebKit
- Target is on Safari/iOS/iPadOS/macOS prior to 26.5.2
- Enterprise SWG/DNS filtering (Umbrella, Zscaler, Netskope) blocks newly-registered or low-reputation domains
- Lockdown Mode on managed iOS fleets disables JIT and most attack surface
WebKit hits malformed input → memory corruption
- Affected WebKit build
- JIT enabled (default outside Lockdown Mode)
- WebContent process is sandboxed; crashing it does not crash the device or other tabs
- PAC, ASLR, and structure-ID randomization significantly raise the bar to weaponize beyond a crash
~/Library/Logs/DiagnosticReports/) reference com.apple.WebKit.WebContent.Impact: tab/renderer crash
C:N/I:N.- No additional primitives available publicly
- Chain would require a second, unrelated WebKit/kernel CVE — i.e., this bug is not a standalone weapon
The supporting signals.
| In-the-wild status | No evidence of exploitation. Apple did not flag this as an actively-exploited zero-day (no "Apple is aware of a report" language). |
|---|---|
| Public PoC | None published. WebKit Bugzilla 314235 is the upstream tracker; no GitHub repos or Metasploit modules. |
| EPSS | 0.00194 — bottom-quartile probability of exploitation in the next 30 days. |
| KEV status | Not listed by CISA. |
| CVSS vector | AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H — network reach, user click required, availability-only impact (no confidentiality / integrity loss). |
| Affected versions | Safari, iOS/iPadOS, macOS Tahoe prior to 26.5.2. WKWebView-based apps inherit fix only after OS update. |
| Fixed versions | Safari 26.5.2, iOS/iPadOS 26.5.2, macOS Tahoe 26.5.2 (released June 2026). |
| Exposure | Effectively every Apple endpoint that browses the open web — but exposure ≠ exploitability for a crash-only bug. |
| Disclosure | 2026-06-29, coordinated disclosure via Apple security update. |
| Reporter | Utkarsh Pal and Ignacio Sanmillan (@ulexec) — known WebKit researchers. |
noisgate verdict.
Vendor advisory explicitly limits impact to *unexpected Safari crash* with CVSS C:N/I:N/A:H — the single decisive factor is that there is no confidentiality or integrity loss and no documented code-execution primitive. A renderer-tab crash on a sandboxed WebContent process is not a meaningful availability impact at fleet scale.
Why this verdict
- Impact is availability-only on a sandboxed process. Apple's own description caps the damage at a Safari crash. The WebContent process is sandboxed; the user reloads and moves on.
- No public PoC, no KEV, EPSS 0.0019. Three independent signals all agree this is not a near-term threat.
- User interaction required (UI:R). Drive-by exploitation requires the victim to actively load attacker content; enterprise SWG, DNS filtering, and email link-rewriting absorb most candidate lures.
- Role multiplier: WebKit runs on user endpoints (workstations, phones, tablets) — never on high-value-role infrastructure (no DC, no hypervisor, no IdP, no CA, no PAM, no kernel-mode security agent). There is no fleet-scale or identity-scale blast radius pathway. Floor: LOW.
- Patch already shipping via the normal Apple OS update channel — most managed fleets will pick it up in the next MDM compliance window without dedicated effort.
Why not higher?
MEDIUM would require either a credible RCE chain (none documented), a sandbox-escape pairing (none disclosed), or an active-exploitation signal (none — Apple did not invoke the "aware of a report" language). The CVSS A:H label inflates a renderer crash to MEDIUM; in operational terms a tab crash is not a meaningful availability event.
Why not lower?
IGNORE is wrong because the bug IS network-reachable, IS in widely-deployed browser code, and the underlying memory corruption class (CWE-119) historically has been weaponized into RCE chains when paired with info leaks. A latent risk of a future, smarter exploit keeps this on the patch backlog rather than dismissed.
What to do — in priority order.
- Let OS auto-update push 26.5.2 in the next MDM compliance window — This is the cleanest remediation. No mitigation SLA applies for a LOW verdict — close out within the 365-day remediation window, though Apple's normal cadence will get you there in days. For BYOD, enforce iOS/macOS minimum-OS policy via Intune/Jamf compliance.
- Block known-bad domains at SWG/DNS layer — Standard practice — Zscaler, Umbrella, Netskope, Cloudflare Gateway will neutralize any opportunistic mass-distribution attempt long before a public PoC emerges.
- Enable Lockdown Mode for high-risk principals (execs, journalists, M&A counsel) — Lockdown Mode disables WebKit JIT and aggressive content types, raising the exploitation bar against any WebKit memory bug. Worth it for the top 1% of your user base, not the rest.
- EDR signatures — there is no shellcode to detect; a clean crash leaves no IOC distinct from any other WebKit bug.
- WAF / IPS rules — content is HTTPS-encrypted and parsed client-side; perimeter inspection cannot see the malformed payload.
- Disabling JavaScript globally — breaks too many enterprise SaaS apps to be a viable trade for a crash-only bug.
Crowdsourced verification payload.
Run on the target macOS host with normal user privileges (no sudo). Invoke as ./check-cve-2026-39872.sh. Reports VULNERABLE if Safari or macOS build is below 26.5.2. For iOS/iPadOS, check via your MDM (Jamf, Intune, Kandji) compliance report — there is no on-device shell.
#!/usr/bin/env bash
# check-cve-2026-39872.sh
# Detects unpatched WebKit (CVE-2026-39872) on macOS hosts.
# Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN
set -u
FIXED_MACOS="26.5.2"
FIXED_SAFARI="26.5.2"
version_lt() {
# returns 0 (true) if $1 < $2
[ "$1" = "$2" ] && return 1
printf '%s\n%s\n' "$1" "$2" | sort -V -C
}
if [[ "$(uname -s)" != "Darwin" ]]; then
echo "UNKNOWN: not a macOS host (WebKit CVE applies to Apple OSes only)"
exit 2
fi
MACOS_VER=$(sw_vers -productVersion 2>/dev/null || echo "")
SAFARI_VER=$(defaults read /Applications/Safari.app/Contents/Info CFBundleShortVersionString 2>/dev/null || echo "")
if [[ -z "$MACOS_VER" || -z "$SAFARI_VER" ]]; then
echo "UNKNOWN: could not enumerate macOS or Safari version"
exit 2
fi
echo "macOS: $MACOS_VER (fixed >= $FIXED_MACOS)"
echo "Safari: $SAFARI_VER (fixed >= $FIXED_SAFARI)"
vuln=0
if version_lt "$MACOS_VER" "$FIXED_MACOS"; then vuln=1; fi
if version_lt "$SAFARI_VER" "$FIXED_SAFARI"; then vuln=1; fi
if [[ $vuln -eq 1 ]]; then
echo "VULNERABLE: update to macOS Tahoe 26.5.2 / Safari 26.5.2 or later"
exit 1
fi
echo "PATCHED"
exit 0
If you remember one thing.
Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.