← Back to Feed CACHED · 2026-07-01 06:58:00 · CACHE_KEY CVE-2026-43663
CVE-2026-43663 · CWE-119 · Disclosed 2026-06-29

Apple WebKit memory-handling flaw — remote DoS via crafted web content

ASSESSED — NOISGATE
Vendor
—
—
—
Reassessed
—
—
—
Verdict: —
Do you agree?
01 · The Real Story

A malicious webpage that makes your Safari tab fall over and nothing more

CVE-2026-43663 is a memory-handling bug in WebKit disclosed on 2026-06-29 and fixed in *Safari 26.5.2*, *macOS Tahoe 26.5.2*, and the corresponding *iOS/iPadOS 26.5.2* trains. Apple's advisory language — *'addressed with improved memory handling'* — is their standard boilerplate for a bounded memory-safety issue. The CVSS vector AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H tells the whole story: a remote attacker can serve crafted web content that, when a user renders it, causes an *availability-only* impact — the WebKit content process crashes. There is no C or I impact declared by Apple, which is unusual and load-bearing: this is not an RCE precursor in Apple's own analysis, it is a denial-of-service on the tab/process.

The vendor score of 6.5 MEDIUM is arguably generous. A DoS on a per-tab renderer process, on a client-side browser, on a device the user controls, is not what enterprise defenders spend Tuesday morning on. The realistic worst case is that a user browses a hostile page (or a compromised ad on a legitimate page), the tab crashes, and they hit reload. There is no persistence, no cross-origin data leak, no sandbox escape claimed. Given the DEVCORE, Amy Burnett, and Talence credit list, this looks like a fuzzing-derived crasher rather than a chained exploit primitive.

"Pure browser-tab DoS. User visits a bad page, Safari crashes, they reload. No RCE, no data loss. Ship the OS update in your normal ring."
02 · The Attack Path

3 steps from start to impact.

STEP 01

Attacker prepares malicious web content

The attacker crafts an HTML/JS/CSS/SVG/WebAssembly payload that trips the specific memory-handling bug in WebKit's renderer. Public tooling here is generic browser-fuzzing infrastructure — Fuzzilli, Domato, Grinder — none of which produce a weaponized exploit for this CVE at time of writing.
Conditions required:
  • Attacker controls a webpage OR can inject content via a third-party frame (malvertising, compromised CDN)
  • Knowledge of the specific parser/DOM path that triggers the bug
Where this breaks in practice:
  • No public PoC or write-up as of disclosure
  • Apple's advisory omits the affected WebKit subsystem, slowing PoC development
Detection/coverage: Web proxies and NGFW have no signature — the trigger is a legitimate-looking HTML document.
STEP 02

Victim renders the content in Safari or a WebKit-embedded view

The user must actively visit the page in Safari, or open a link that opens in Safari View Controller / WKWebView. UI:R is required. Enterprise iOS/iPadOS management typically routes managed browsing through Safari, so WebKit is the reachable surface on Apple mobile fleets.
Conditions required:
  • User clicks the link or the page loads via active tab
  • Target on macOS ≤ 26.5.1 / iOS ≤ 26.5.1 / iPadOS ≤ 26.5.1 / Safari ≤ 26.5.1
Where this breaks in practice:
  • Modern browsers process-isolate each tab — the crash is contained to one renderer process
  • Users on auto-update rings roll to 26.5.2 within days
  • Safe Browsing / Google Web Risk / MDM URL filtering blocks known malicious hosts
Detection/coverage: EDR on macOS records com.apple.WebKit.WebContent crash reports; centralize /Library/Logs/DiagnosticReports/ for a crude anomaly signal.
STEP 03

WebKit content process crashes — DoS realized

The renderer dies. Safari shows *'This webpage was reloaded because a problem occurred.'* The user reloads or closes the tab. That is the entire chain. Apple asserts C:N/I:N, so this bug is not, in the vendor's view, a stepping-stone to code execution or info disclosure without further, unrelated vulnerabilities.
Conditions required:
  • The trigger is reached in the renderer process
Where this breaks in practice:
  • No persistence — the next page load is unaffected
  • No cross-origin impact — same-origin renderer only
Detection/coverage: Rare on typical browsing; a spike of WebContent crash telemetry across a fleet is worth an alert only for hunting hostile-web-content campaigns.
03 · Compensating Control

1
Ship the OS/browser update through your normal ring — macOS 26.5.2 / iOS 26.5.2 / iPadOS 26.5.2 / Safari 26.5.2 carry the fix. There is no mitigation SLA at LOW — roll it in the standard patch train, target completion within the noisgate remediation SLA of 365 days, though in practice Apple auto-update will finish this in weeks.
2
Confirm MDM enforcement of AutomaticSoftwareUpdate and SafariAutoUpdate — Jamf / Intune / Kandji policy audit: verify managed Macs and iOS devices are not deferring OS updates beyond 30 days. This is the durable control that closes this CVE and the next fifty WebKit CVEs.
3
Add WebContent crash telemetry to EDR baselines — Forward /Library/Logs/DiagnosticReports/*WebContent* and iOS crash logs to your SIEM. Not for this CVE specifically — for the class. A fleet-wide spike is a cheap hunting signal for hostile-web-content campaigns.
4
Ensure DNS/URL filtering (Umbrella, Zscaler, NetSkope, or MDM Content Filter) is enforcing known-bad domain lists — Removes the delivery vector for opportunistic exploitation, which matters more for the *next* WebKit RCE than this DoS.
What doesn't work
  • Network segmentation — irrelevant. The trigger arrives over normal HTTPS to AV:N client sessions the user initiates.
  • EDR memory-protection policies (e.g., Hardware-enforced Stack Protection) — WebKit already runs in a sandbox with pointer authentication on Apple silicon; these don't stop a bounds-check DoS, they contain post-corruption behavior.
  • Disabling JavaScript — plausible on paper, but breaks 99% of the modern web, and this class of bug is often reachable via DOM/parser paths without JS.
  • WAF / IDS signatures — no reliable signature exists for a memory-corruption trigger in HTML/JS; the malicious page looks structurally identical to legitimate content.
04 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNone reported. Not credited as exploited in Apple's advisory (Apple explicitly flags actively-exploited bugs).
KEV listedNo — CISA has not added this CVE.
Public PoCNone known at time of assessment. No GitHub, no Metasploit module, no researcher write-up published.
EPSS0.00194 (~0.2%) — bottom-percentile likelihood of exploitation in the next 30 days.
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H — network reachable, no privileges, user interaction required, availability-only impact.
CWECWE-119 (Improper restriction of operations within memory buffer bounds). Consistent with Apple's *'improved memory handling'* boilerplate.
Affected versionsmacOS Tahoe < 26.5.2, Safari < 26.5.2, iOS/iPadOS < 26.5.2, visionOS trains prior to the June 2026 update wave. WebKitGTK/WPE downstream likely pulls the fix via WSA-2026-0003.
Fixed versionsSafari 26.5.2, macOS Tahoe 26.5.2, iOS/iPadOS 26.5.2. Distro backports: WebKitGTK — track WSA-2026-0003.
Reporter creditDEVCORE Research Team (Kota Toda, HexRabbit, NiNi), Soyeon Park, Amy Burnett, Khai Tran, sherkito, Tristan Madani (Talence Security), Brian Carpenter — a fuzzing-heavy roster consistent with a crasher-class bug.
Disclosure2026-06-29 in Apple's monthly security train.

Sources.

  1. Apple — About the security content of Safari 26.5.2
  2. Apple — About the security content of macOS Tahoe 26.5.2
  3. Apple — About the security content of iOS 26.5.2 and iPadOS 26.5.2
  4. WebKitGTK Security Advisory WSA-2026-0003
  5. FIRST — EPSS Model
  6. CISA Known Exploited Vulnerabilities Catalog
  7. MITRE CWE-119
  8. Feedly — Latest Apple Vulnerabilities
05 · The Call

Final Verdict
↓ DOWNGRADED to LOW (3.1/10)

Why this verdict

  • Availability-only impact: C:N/I:N/A:H means the vendor sees no data-disclosure or integrity primitive here. Blast radius is a crashed renderer, not code execution.
  • User interaction required: UI:R means the victim must actively browse to attacker-controlled content — no drive-by from a passive port scan, no worming.
  • Role multiplier: WebKit ships on macOS/iOS clients and embedded WKWebView. There is *no* canonical high-value role for a browser DoS — it does not run on domain controllers, hypervisors, PAM, backup, or CI. Even in embedded kiosk / signage roles the outcome is a single-view crash, not fleet compromise. Floor is LOW.
  • No exploitation signal: EPSS 0.00194, no KEV, no public PoC, Apple did *not* flag this as exploited (they do flag those explicitly — see the December 2025 WebKit zero-days).
  • Process isolation contains it: WebKit's WebContent process is sandboxed and one-tab-per-process on modern Safari; a crash does not take the whole browser, let alone the OS.

Why not higher?

MEDIUM would imply meaningful defender workload beyond the standard OS-update ring. There is no confidentiality or integrity primitive here per the vendor vector, no active exploitation, no KEV, and no PoC. Fleet-wide impact is bounded by process isolation and user interaction.

Why not lower?

IGNORE would be wrong because it *is* remotely reachable (AV:N, PR:N, AC:L) and does affect availability of a user-facing app. Apple advisory language occasionally undersells memory-safety bugs that later prove chainable — the patch is trivially shipped via existing update infrastructure, so there is no reason to skip it.

06 · Verification

Crowdsourced verification payload.

Run on a target macOS host as any user (no privileges required). Compares the installed Safari and macOS build against the fixed 26.5.2 train. Invoke as ./check-cve-2026-43663.sh. For iOS/iPadOS fleets, query MDM inventory for OSVersion >= 26.5.2 instead.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# CVE-2026-43663 — WebKit memory-handling DoS
# Fixed in Safari 26.5.2 / macOS Tahoe 26.5.2 / iOS/iPadOS 26.5.2
# Exits: 0 PATCHED, 1 VULNERABLE, 2 UNKNOWN

set -u

FIXED_MAJOR=26
FIXED_MINOR=5
FIXED_PATCH=2

ver_ge() {
  # $1 >= $2 ?
  local a b
  IFS='.' read -r -a a <<< "$1"
  IFS='.' read -r -a b <<< "$2"
  for i in 0 1 2; do
    local av=${a[$i]:-0} bv=${b[$i]:-0}
    if (( av > bv )); then return 0; fi
    if (( av < bv )); then return 1; fi
  done
  return 0
}

if [[ "$(uname -s)" != "Darwin" ]]; then
  echo "UNKNOWN: not a macOS host — check iOS/iPadOS via MDM" >&2
  exit 2
fi

# macOS product version
OS_VER=$(sw_vers -productVersion 2>/dev/null || echo "")
if [[ -z "$OS_VER" ]]; then
  echo "UNKNOWN: cannot read sw_vers" >&2
  exit 2
fi

# Safari CFBundleShortVersionString
SAFARI_PLIST="/Applications/Safari.app/Contents/Info.plist"
SAFARI_VER=""
if [[ -f "$SAFARI_PLIST" ]]; then
  SAFARI_VER=$(/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' "$SAFARI_PLIST" 2>/dev/null || echo "")
fi

TARGET="${FIXED_MAJOR}.${FIXED_MINOR}.${FIXED_PATCH}"

OS_OK=1; SAFARI_OK=1
ver_ge "$OS_VER"     "$TARGET" || OS_OK=0
[[ -n "$SAFARI_VER" ]] && { ver_ge "$SAFARI_VER" "$TARGET" || SAFARI_OK=0; }

echo "macOS:  $OS_VER  (need >= $TARGET)"
echo "Safari: ${SAFARI_VER:-not-installed}  (need >= $TARGET)"

if (( OS_OK == 1 )) && (( SAFARI_OK == 1 )); then
  echo "PATCHED"
  exit 0
fi

echo "VULNERABLE"
exit 1