← Back to Feed CACHED · 2026-11-05 01:35:25 · CACHE_KEY CVE-2024-27834
CVE-2024-27834 · CWE-287 · Disclosed 2024-05-14

Apple WebKit pointer authentication bypass with arbitrary read/write

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

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.

"Needs a separate memory corruption bug to matter; patch with routine Apple updates, not an emergency."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Deliver malicious web content to a WebKit user

The attacker must convince the victim to open a malicious webpage or HTML content in Safari, WKWebView, or a Linux WebKitGTK/WPE application. This is the delivery vector for the separate memory corruption bug that will later grant arbitrary read/write.
Conditions required:
  • Victim uses affected WebKit on Apple OS or Linux
  • Attacker can host or inject content into web traffic
  • Interactivity (click link, open email attachment)
Where this breaks in practice:
  • Requires user interaction; many WebKit-based apps restrict scripting or use content blockers
  • Corporate proxies/email gateways may filter known malicious URLs
Detection/coverage: Network/proxy logs can flag suspicious domains; email gateway may quarantine HTML attachments.
STEP 02

Exploit a separate memory corruption bug for arbitrary read/write

CVE-2024-27834 does not provide the initial read/write primitive. The attacker must have a working WebKit memory corruption exploit (e.g., a JIT bug) that matches the target version and yields arbitrary read/write in the WebContent process.
Conditions required:
  • Attacker has a memory corruption exploit for the exact WebKit build
  • Vulnerable code path is reachable in the web content
  • JIT is enabled (default)
Where this breaks in practice:
  • WebKit hardens its allocator, JIT, and sandbox; memory corruption bugs are rare and patched quickly
  • No public exploit tailored to this chain is known
Detection/coverage: WebKit crash logs, kernel panics, or EDR behavioral alerts may indicate exploit attempts, but targeted attacks often evade.
STEP 03

Use arbitrary read/write to forge pointer authentication codes

With arbitrary read/write, the attacker leverages CVE-2024-27834 to forge signed pointers (PAC) and redirect execution despite the hardware control-flow integrity. This is the core of the CVE and only succeeds on PAC-capable hardware.
Conditions required:
  • Target hardware supports Pointer Authentication (Apple A12/M1 or later)
  • Attacker controls enough memory to write forged pointers
  • Process has pointers to hijack
Where this breaks in practice:
  • 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
Detection/coverage: No direct detection; PAC bypass is post-exploitation and invisible to most endpoint tools.
STEP 04

Execute arbitrary code inside the sandboxed WebContent process

Once PAC is bypassed, the attacker can redirect control flow to execute code within the WebKit sandbox. The sandbox restricts filesystem, network, and syscall access, limiting immediate damage.
Conditions required:
  • Successful pointer forgery and control of instruction pointer
  • Code payload fits within sandbox profile constraints
Where this breaks in practice:
  • 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
Detection/coverage: EDR or platform security logs may flag unusual process behavior, but sandboxed execution can be stealthy.
STEP 05

Escape WebKit sandbox to compromise the user session (separate vulnerability)

To achieve meaningful impact—reading user data, installing persistence, or escaping the browser process—the attacker still needs a separate sandbox escape vulnerability. This CVE does not help with sandbox escape.
Conditions required:
  • Another vulnerability in the OS sandbox or IPC layer exists
  • Attacker has enough time before patching/reboot
Where this breaks in practice:
  • Apple sandbox escape bugs are high-value and quickly patched
  • iOS/macOS security architecture layers multiple checks beyond PAC
Detection/coverage: Kernel security logs, sandbox violation reports, and EDR may detect post-exploitation activity.
03 · Compensating Control

1
LOW 3.1→IGNORE 0.0
SEVERITY REDUCED
Apply Apple security updates and WebKitGTK/WPE updates — Install Safari 17.5, iOS/iPadOS 16.7.8/17.5, macOS 14.5, tvOS 17.5, watchOS 10.5; for Linux upgrade to WebKitGTK/WPE 2.44.2 or distro backport. This eliminates the flaw. Deploy within 90 days under noisgate remediation SLA for LOW severity.
2
LOW 3.1→LOW 2.0
Enable Lockdown Mode on high-risk Apple devices if you cannot patch immediately — Lockdown Mode disables JIT and other WebKit features, disrupting the separate memory corruption primitives needed to reach the arbitrary read/write precondition. This breaks the chain before PAC bypass matters. Residual severity LOW, score 2.0.
3
LOW 3.1→LOW 2.5
Block or restrict untrusted web content via proxy/content filter — Prevent users from visiting malicious sites or opening HTML attachments in WebKit-based clients. Reduces delivery of the initial memory corruption exploit. Residual severity LOW, score 2.5.
4
LOW 3.1→LOW 3.0
Monitor devices for WebKit crash/panic patterns and unusual process behavior — This CVE itself is not directly detectable; focus on signs of the prerequisite R/W exploit such as repeated WebKit crashes, kernel panics, or EDR alerts. Residual severity LOW, score 3.0.
What doesn't work
  • 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.
04 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo known exploitation; not listed in CISA KEV.
Proof-of-concept availabilityNo public PoC found in search results; no GitHub repositories named after this CVE; pocindex.io shows no entry (as of 2026-04).
EPSS score / percentileEPSS 0.00598 (0.598% probability); percentile not available.
KEV status / datesNot listed in CISA KEV as of 2026-04.
CVSS vector interpretationCVSS: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 rangesSafari 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 versionsSafari 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 dataWebKit is client-side, not a network service; Shodan/Censys/GreyNoise not applicable. No mass internet-facing exposure.
Disclosure date2024-05-14.
Reporting researcher / orgNot publicly credited in search results; likely Apple product security or anonymous researcher.

Sources.

  1. NVD CVE-2024-27834
  2. GHSA-4rmp-jjj9-cfm4 (CIRCL)
  3. Debian Security Tracker CVE-2024-27834
  4. Ubuntu CVE-2024-27834
  5. VulDB CVE-2024-27834
  6. VulDB Apple Safari memory corruption
  7. Amazon Linux ALAS2-2024-2577
05 · The Call

Final Verdict
↓ DOWNGRADED to LOW (3.1/10)

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.

06 · Verification

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

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/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