A key to a locked door, but only after you've already picked the outer lock
CVE-2024-27834 is a flaw in Apple's WebKit engine (and the corresponding WebKitGTK/WPE ports) that lets an attacker who already has arbitrary read and write capability inside a WebKit process forge pointer authentication codes. On Apple Silicon, that strips away a key defense-in-depth control—but only after the attacker has already landed a separate memory corruption exploit. Affected versions include Safari before 17.5, iOS/iPadOS before 16.7.8 and 17.5, macOS Sonoma before 14.5, tvOS before 17.5, watchOS before 10.5, and WebKitGTK/WPE before 2.44.2.
Apple's Medium (5.5) rating is analytically defensible but overstates standalone risk. The CVSS vector assumes a local, low-privileged attacker with no user interaction and only integrity impact, but it does not capture the description's precondition—'arbitrary read and write capability'—which is not part of the vector. In practice this is a second-stage amplifier, not an initial-access bug. No known exploitation, no public PoC, and a 0.598% EPSS probability support a downgrade to Low. Linux WebKitGTK/WPE packages ship the same hardening, but x86 Linux lacks Pointer Authentication, so practical impact there is near zero.
5 steps from start to impact.
Deliver malicious web content to a WebKit user
- Victim uses affected WebKit on Apple OS or Linux
- Attacker can host or inject content into web traffic
- Interactivity (click link, open email attachment)
- Requires user interaction; many WebKit-based apps restrict scripting or use content blockers
- Corporate proxies/email gateways may filter known malicious URLs
Exploit a separate memory corruption bug for arbitrary read/write
- Attacker has a memory corruption exploit for the exact WebKit build
- Vulnerable code path is reachable in the web content
- JIT is enabled (default)
- WebKit hardens its allocator, JIT, and sandbox; memory corruption bugs are rare and patched quickly
- No public exploit tailored to this chain is known
Use arbitrary read/write to forge pointer authentication codes
- Target hardware supports Pointer Authentication (Apple A12/M1 or later)
- Attacker controls enough memory to write forged pointers
- Process has pointers to hijack
- PAC bypass alone does not provide code execution; it merely removes a mitigation
- On Intel Macs or x86 Linux, PAC is absent and this step is non-applicable
Execute arbitrary code inside the sandboxed WebContent process
- Successful pointer forgery and control of instruction pointer
- Code payload fits within sandbox profile constraints
- WebKit sandbox on iOS/macOS is restrictive; even with code execution, attacker cannot touch user files or keychain
- WebKitGTK on Linux may not have equivalent sandbox, but PAC bypass is absent there
Escape WebKit sandbox to compromise the user session (separate vulnerability)
- Another vulnerability in the OS sandbox or IPC layer exists
- Attacker has enough time before patching/reboot
- Apple sandbox escape bugs are high-value and quickly patched
- iOS/macOS security architecture layers multiple checks beyond PAC
- Disabling JavaScript alone — not enough because other WebKit attack surface remains, and many enterprises require JavaScript.
- Relying on antivirus/EDR to block after exploitation — PAC bypass occurs post-exploitation; by the time EDR sees it, arbitrary code execution has already occurred inside the sandbox.
- Network firewalls — WebKit fetches content over HTTPS, and malicious content can be embedded in legitimate sites; a firewall cannot distinguish the exploit.
The supporting signals.
| In-the-wild status | No known exploitation; not listed in CISA KEV. |
|---|---|
| Proof-of-concept availability | No public PoC found in search results; no GitHub repositories named after this CVE; pocindex.io shows no entry (as of 2026-04). |
| EPSS score / percentile | EPSS 0.00598 (0.598% probability); percentile not available. |
| KEV status / dates | Not listed in CISA KEV as of 2026-04. |
| CVSS vector interpretation | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N — local, low complexity, low privileges, no user interaction, scope unchanged, high integrity impact only. |
| Affected version ranges | Safari before 17.5; iOS/iPadOS before 16.7.8 and 17.5; macOS Sonoma before 14.5; tvOS before 17.5; watchOS before 10.5; WebKitGTK/WPE before 2.44.2. |
| Fixed versions | Safari 17.5; iOS/iPadOS 16.7.8 and 17.5; macOS 14.5; tvOS 17.5; watchOS 10.5; WebKitGTK 2.44.2+ and WPE WebKit 2.44.2+; Debian/Ubuntu provide backports (e.g., Ubuntu 24.04 fixed in 2.44.2-0ubuntu0.24.04.1). |
| Scanning / exposure data | WebKit is client-side, not a network service; Shodan/Censys/GreyNoise not applicable. No mass internet-facing exposure. |
| Disclosure date | 2024-05-14. |
| Reporting researcher / org | Not publicly credited in search results; likely Apple product security or anonymous researcher. |
Sources.
Why this verdict
- Not remotely exploitable alone: the description requires an attacker to already have arbitrary read/write in WebKit; that primitive comes from a separate vulnerability.
- No active exploitation or public PoC: EPSS 0.598%, not KEV-listed, and no proof-of-concept in search results.
- Role multiplier: absent: WebKit does not occupy a high-value-role position (not IdP, hypervisor, CA, PAM, backup, network edge, etc.). The worst plausible outcome is code execution in a sandboxed browser process, not domain/fleet/supply-chain impact.
- Scope is limited to Apple silicon PAC hardware: on Intel Macs and x86 Linux WebKitGTK, the PAC bypass is non-applicable.
Why not higher?
It is not an initial-access bug, and there is no known chain pairing it with a memory corruption bug in the wild. Apple's own score reflects a local, single-target integrity impact; we would need a known PoC or active exploitation to justify Medium or High.
Why not lower?
It still weakens a critical defense-in-depth control on Apple Silicon. WebKit is ubiquitous on iOS/macOS and embedded WebKitGTK, so when paired with a future memory corruption bug it could materially lower exploitation cost. Routine patching is appropriate.
Crowdsourced verification payload.
Run on the target macOS or Linux host as a standard user; no special privileges needed. On macOS it checks Safari and macOS versions; on Linux it checks dpkg for WebKitGTK/WPE packages. Example: bash check_cve-2024-27834.sh
#!/bin/bash
# Check for CVE-2024-27834 (WebKit pointer authentication bypass)
# Run on macOS or Linux host. Outputs VULNERABLE, PATCHED, or UNKNOWN.
set -u
fixed_webkit="2.44.2"
os_type="$(uname -s)"
if [[ "$os_type" == "Darwin" ]]; then
safari_ver=$(defaults read /Applications/Safari.app/Contents/Info.plist CFBundleShortVersionString 2>/dev/null || echo "")
macos_ver=$(sw_vers -productVersion 2>/dev/null || echo "")
if [[ -n "$safari_ver" ]]; then
lower=$(printf '%s\n' "$safari_ver" "17.5" | sort -V | head -n1)
if [[ "$lower" != "17.5" ]]; then
echo "VULNERABLE: Safari $safari_ver (< 17.5)"
exit 1
else
echo "PATCHED: Safari $safari_ver (>= 17.5)"
exit 0
fi
fi
if [[ -n "$macos_ver" ]]; then
major=$(echo "$macos_ver" | cut -d. -f1)
minor=$(echo "$macos_ver" | cut -d. -f2)
if [[ "$major" -eq 14 && "$minor" -lt 5 ]]; then
echo "VULNERABLE: macOS Sonoma $macos_ver (< 14.5)"
exit 1
elif [[ "$major" -eq 14 && "$minor" -ge 5 ]]; then
echo "PATCHED: macOS Sonoma $macos_ver (>= 14.5)"
exit 0
fi
fi
echo "UNKNOWN: could not determine Safari/macOS version or not applicable"
exit 2
elif [[ "$os_type" == "Linux" ]]; then
pkg_found=0
for pkg in libwebkit2gtk-4.0-37 libwebkit2gtk-4.1-0 libwpewebkit-1.0-3; do
ver=$(dpkg-query -W -f='${Version}' "$pkg" 2>/dev/null || true)
if [[ -n "$ver" ]]; then
pkg_found=1
if dpkg --compare-versions "$ver" lt "$fixed_webkit"; then
echo "VULNERABLE: $pkg version $ver (< $fixed_webkit)"
exit 1
else
echo "PATCHED: $pkg version $ver (>= $fixed_webkit)"
exit 0
fi
fi
done
if [[ $pkg_found -eq 0 ]]; then
echo "UNKNOWN: no WebKitGTK/WPE packages found via dpkg"
exit 2
fi
else
echo "UNKNOWN: unsupported OS $os_type"
exit 2
fi