Cloudanix VulnDB

CVE-2021-30661

High · 8.8 CISA KEV

CVSS

8.8

EPSS

4.5%

Published

Sep 8, 2021

CISA due date

Nov 17, 2021

Cloudanix analysis

Act now SSVC: Attend

Opening a malicious webpage on an unpatched Apple device could let an attacker take control of the browser and potentially compromise the device.

Active In The Wild
Exploitation
Requires User Interaction
Attacker needs
User Interaction
Complexity
Low
Impact
Remote Code Execution
Component
Application
Class
Use After Free
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

CVE-2021-30661 is a WebKit use-after-free vulnerability in Apple platforms. When Safari or another WebKit-based application processes maliciously crafted web content, memory that has already been freed can be reused in an unsafe way, allowing attacker-controlled code execution in the context of the browser content process. Successful exploitation can expose browser data and may be chained with sandbox escape or privilege escalation vulnerabilities to achieve broader device compromise.

Why it matters to the business

This vulnerability affects widely deployed Apple devices and browsers, including Safari, iOS, iPadOS, macOS, watchOS, and tvOS. Because Apple reported active exploitation and the vulnerability is listed in CISA KEV with a remediation due date of 2021-11-17, unpatched systems should be treated as high-risk even though the current EPSS score is modest and stable. Business consequences can include compromise of executive or employee devices, theft of sensitive communications or credentials, surveillance, unauthorized access to business applications, incident response costs, and regulatory exposure. No ransomware use is indicated in the supplied data.

How an attack unfolds

An attacker hosts or delivers malicious web content that triggers the WebKit memory-management flaw. A target must interact with the content, typically by visiting a malicious site, opening a link, viewing embedded web content, or using an application that renders attacker-controlled content through WebKit. The crafted content causes a use-after-free condition, corrupting memory and allowing attacker-controlled code to run inside the WebKit content process. In real-world campaigns, including activity associated with Candiru / SOURGUM / DevilsTongue, browser code execution vulnerabilities like this are commonly paired with additional exploits to escape the browser sandbox, install spyware, collect data, and maintain access. Without a follow-on sandbox escape, impact may be constrained to the browser process, but the flaw still creates a serious remote code execution foothold.

How to fix it

Upgrade affected Apple software to a fixed or later version: Safari 14.1 or later; iOS 12.5.3 or later for supported older devices; iOS 14.5 or later; iPadOS 14.5 or later; watchOS 7.4 or later; tvOS 14.5 or later; and macOS Big Sur 11.3 or later. Where possible, upgrade to the latest supported Apple OS release rather than only the first fixed version, because later releases include additional WebKit and platform hardening. Enforce updates through MDM or endpoint management, prioritize high-risk users and internet-facing browser use cases, and retire devices that cannot receive security updates. As interim mitigations, restrict access to untrusted websites, disable or limit risky browser content where operationally feasible, reduce exposure to unsolicited links, and use network filtering; these mitigations should not be considered substitutes for patching.

How to confirm the fix worked

Confirm exposure by inventorying Apple OS and Safari versions across managed devices. Verify macOS version with system inventory, MDM, or `sw_vers`, and verify Safari version from application inventory or managed software reporting. Confirm iOS/iPadOS/watchOS/tvOS versions through MDM device inventory. Systems should meet or exceed Safari 14.1, iOS 12.5.3, iOS/iPadOS 14.5, watchOS 7.4, tvOS 14.5, and macOS Big Sur 11.3, or preferably run the latest supported versions. Validate that update policies successfully installed the patches, that no vulnerable devices remain in exception groups, and that devices unable to update are isolated, replaced, or removed from sensitive workflows.

Typical attack path

  1. Identify targets using vulnerable Apple platforms or Safari/WebKit versions.
  2. Deliver a malicious link, compromised website, watering-hole page, advertisement, message, or embedded web view content to the target.
  3. The target opens or previews the malicious web content, satisfying the required user interaction.
  4. WebKit processes the crafted content and triggers the use-after-free condition.
  5. The exploit achieves code execution in the browser or WebKit content process.
  6. The attacker optionally chains a sandbox escape or privilege escalation exploit to gain broader device control.
  7. The attacker deploys spyware, steals browser/session data, accesses files or communications, or performs follow-on activity.
  8. The attacker attempts to evade detection by minimizing artifacts, using encrypted command-and-control, and cleaning transient exploit traces.

How to detect it

Because exploitation occurs through browser memory corruption, reliable host indicators may be sparse, especially on iOS and iPadOS. Review Apple Unified Logs, Safari/WebKit crash reports, mobile analytics logs, MDM security telemetry, EDR events, DNS logs, proxy logs, secure web gateway logs, and firewall records. Look for WebKit or Safari crashes such as EXC_BAD_ACCESS or KERN_INVALID_ADDRESS occurring immediately after visits to unfamiliar domains, shortened links, messaging links, or compromised sites. Correlate those events with signs of follow-on compromise: unexpected child processes on macOS, suspicious persistence, unknown configuration profiles, new certificates, unusual VPN/proxy settings, abnormal outbound connections, credential prompts, browser data access, or spyware-like behavior. For iOS/iPadOS, collect sysdiagnose or device analytics where feasible and compare network activity before and after suspected exploitation. Threat hunting should include campaign intelligence associated with Candiru / SOURGUM / DevilsTongue, but absence of known infrastructure does not rule out exploitation because exploit delivery infrastructure may be short-lived and targeted.

What your security team should do

  • Treat unpatched affected Apple devices as urgent because the vulnerability is KEV-listed and was actively exploited in the wild.
  • Prioritize patching for executives, administrators, developers, legal/finance staff, journalists, and other high-value users who are more likely to be targeted by spyware campaigns.
  • Use MDM or endpoint management to enforce minimum OS and Safari versions and block access from noncompliant devices where possible.
  • Hunt historical web, DNS, proxy, EDR, and Apple crash/analytics logs for suspicious browsing activity and WebKit crashes around the time of unusual device behavior.
  • Review devices used by high-risk users for spyware-like activity, unknown configuration profiles, suspicious VPN/proxy settings, unexpected certificates, and anomalous outbound network connections.
  • Monitor threat intelligence for Candiru / SOURGUM / DevilsTongue infrastructure or campaign indicators and correlate any matches with Apple device activity.
  • Educate users to avoid unsolicited links and unexpected web previews, especially in messaging, email, and social platforms, while emphasizing that user training is not a replacement for patching.
  • Retire or restrict devices that cannot be upgraded to fixed versions.

The record

A use after free issue was addressed with improved memory management. This issue is fixed in Safari 14.1, iOS 12.5.3, iOS 14.5 and iPadOS 14.5, watchOS 7.4, tvOS 14.5, macOS Big Sur 11.3. Processing maliciously crafted web content may lead to arbitrary code execution. Apple is aware of a report that this issue may have been actively exploited..

Affected packages

Ecosystem Package Introduced Fixed
Debian:10 webkit2gtk 0 2.30.3-1~deb10u1
Debian:11 webkit2gtk 0 2.30.1-1
Debian:11 wpewebkit 0 2.30.0-1
Debian:12 webkit2gtk 0 2.30.1-1
Debian:12 wpewebkit 0 2.30.0-1
Debian:13 webkit2gtk 0 2.30.1-1
Debian:13 wpewebkit 0 2.30.0-1
Red Hat:enterprise_linux:8::appstream gdm 0 1:3.28.3-39.el8
Red Hat:enterprise_linux:8::appstream gdm-debuginfo 0 1:3.28.3-39.el8
Red Hat:enterprise_linux:8::appstream gdm-debugsource 0 1:3.28.3-39.el8
Red Hat:enterprise_linux:8::appstream webkit2gtk3 0 0:2.30.4-1.el8
Red Hat:enterprise_linux:8::appstream webkit2gtk3-debuginfo 0 0:2.30.4-1.el8
Red Hat:enterprise_linux:8::appstream webkit2gtk3-debugsource 0 0:2.30.4-1.el8
Red Hat:enterprise_linux:8::appstream webkit2gtk3-devel 0 0:2.30.4-1.el8
Red Hat:enterprise_linux:8::appstream webkit2gtk3-devel-debuginfo 0 0:2.30.4-1.el8
Red Hat:enterprise_linux:8::appstream webkit2gtk3-jsc 0 0:2.30.4-1.el8
Red Hat:enterprise_linux:8::appstream webkit2gtk3-jsc-debuginfo 0 0:2.30.4-1.el8
Red Hat:enterprise_linux:8::appstream webkit2gtk3-jsc-devel 0 0:2.30.4-1.el8
Red Hat:enterprise_linux:8::appstream webkit2gtk3-jsc-devel-debuginfo 0 0:2.30.4-1.el8
Red Hat:enterprise_linux:8::baseos glib2 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::baseos glib2-debuginfo 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::baseos glib2-debugsource 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::baseos glib2-devel 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::baseos glib2-devel-debuginfo 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::baseos glib2-doc 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::baseos glib2-fam 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::baseos glib2-fam-debuginfo 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::baseos glib2-static 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::baseos glib2-tests 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::baseos glib2-tests-debuginfo 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::crb glib2 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::crb glib2-debuginfo 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::crb glib2-debugsource 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::crb glib2-devel 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::crb glib2-devel-debuginfo 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::crb glib2-doc 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::crb glib2-fam 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::crb glib2-fam-debuginfo 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::crb glib2-static 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::crb glib2-tests 0 0:2.56.4-9.el8
Red Hat:enterprise_linux:8::crb glib2-tests-debuginfo 0 0:2.56.4-9.el8
Rocky Linux:8 OpenEXR 0 0:2.2.0-12.el8
Rocky Linux:8 accountsservice 0 0:0.6.55-1.el8
Rocky Linux:8 atkmm 0 0:2.24.2-7.el8
Rocky Linux:8 cairomm 0 0:1.12.0-8.el8
Rocky Linux:8 chrome-gnome-shell 0 0:10.1-7.el8
Rocky Linux:8 dleyna-core 0 0:0.6.0-3.el8
Rocky Linux:8 dleyna-server 0 0:0.6.0-3.el8
Rocky Linux:8 enchant2 0 0:2.2.3-3.el8
Rocky Linux:8 gamin 0 0:0.1.10-32.el8
Rocky Linux:8 gdm 0 1:3.28.3-39.el8
Rocky Linux:8 geoclue2 0 0:2.5.5-2.el8
Rocky Linux:8 geocode-glib 0 0:3.26.0-3.el8
Rocky Linux:8 gjs 0 0:1.56.2-5.el8
Rocky Linux:8 glibmm24 0 0:2.56.0-2.el8
Rocky Linux:8 gnome-boxes 0 0:3.36.5-8.el8
Rocky Linux:8 gnome-control-center 0 0:3.28.2-27.el8
Rocky Linux:8 gnome-online-accounts 0 0:3.28.2-2.el8
Rocky Linux:8 gnome-photos 0 0:3.28.1-4.el8
Rocky Linux:8 gnome-settings-daemon 0 0:3.32.0-14.el8
Rocky Linux:8 gnome-shell 0 0:3.32.2-30.el8
Rocky Linux:8 gnome-software 0 0:3.36.1-5.el8
Rocky Linux:8 gnome-terminal 0 0:3.28.3-3.el8
Rocky Linux:8 gtk-doc 0 0:1.28-3.el8
Rocky Linux:8 gtk2 0 0:2.24.32-5.el8
Rocky Linux:8 gtkmm24 0 0:2.24.5-6.el8
Rocky Linux:8 gtkmm30 0 0:3.22.2-3.el8
Rocky Linux:8 gvfs 0 0:1.36.2-11.el8
Rocky Linux:8 libdazzle 0 0:3.28.5-2.el8
Rocky Linux:8 libepubgen 0 0:0.1.0-3.el8
Rocky Linux:8 libsass 0 0:3.4.5-6.el8
Rocky Linux:8 libsigc++20 0 0:2.10.0-6.el8
Rocky Linux:8 libvisual 0 1:0.4.0-25.el8
Rocky Linux:8 mutter 0 0:3.32.2-57.el8
Rocky Linux:8 nautilus 0 0:3.28.1-15.el8
Rocky Linux:8 pangomm 0 0:2.40.1-6.el8
Rocky Linux:8 soundtouch 0 0:2.0.0-3.el8
Rocky Linux:8 vala 0 0:0.40.19-2.el8
Rocky Linux:8 webkit2gtk3 0 0:2.30.4-1.el8
Rocky Linux:8 woff2 0 0:1.0.2-5.el8
SUSE:Enterprise Storage 6 webkit2gtk3 0 2.34.3-3.92.1
SUSE:Enterprise Storage 7 webkit2gtk3 0 2.34.3-23.3
SUSE:HPE Helion OpenStack 8 webkit2gtk3 0 2.34.3-2.82.1
SUSE:Linux Enterprise High Performance Computing 15 SP1-ESPOS webkit2gtk3 0 2.34.3-3.92.1
SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS webkit2gtk3 0 2.34.3-3.92.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-ESPOS webkit2gtk3 0 2.34.3-23.3
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS webkit2gtk3 0 2.34.3-23.3
SUSE:Linux Enterprise High Performance Computing 15-ESPOS webkit2gtk3 0 2.34.3-3.92.1
SUSE:Linux Enterprise High Performance Computing 15-LTSS webkit2gtk3 0 2.34.3-3.92.1
SUSE:Linux Enterprise Module for Basesystem 15 SP3 webkit2gtk3 0 2.34.3-23.3
SUSE:Linux Enterprise Module for Desktop Applications 15 SP3 webkit2gtk3 0 2.34.3-23.3
SUSE:Linux Enterprise Real Time 15 SP2 webkit2gtk3 0 2.34.3-23.3
SUSE:Linux Enterprise Server 12 SP2-BCL webkit2gtk3 0 2.34.3-2.82.1
SUSE:Linux Enterprise Server 12 SP3-BCL webkit2gtk3 0 2.34.3-2.82.1
SUSE:Linux Enterprise Server 12 SP3-LTSS webkit2gtk3 0 2.34.3-2.82.1
SUSE:Linux Enterprise Server 12 SP4-LTSS webkit2gtk3 0 2.34.3-2.82.1
SUSE:Linux Enterprise Server 12 SP5 webkit2gtk3 0 2.34.3-2.82.1
SUSE:Linux Enterprise Server 15 SP1-BCL webkit2gtk3 0 2.34.3-3.92.1
SUSE:Linux Enterprise Server 15 SP1-LTSS webkit2gtk3 0 2.34.3-3.92.1
SUSE:Linux Enterprise Server 15 SP2-BCL webkit2gtk3 0 2.34.3-23.3
SUSE:Linux Enterprise Server 15 SP2-LTSS webkit2gtk3 0 2.34.3-23.3
SUSE:Linux Enterprise Server 15-LTSS webkit2gtk3 0 2.34.3-3.92.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP3 webkit2gtk3 0 2.34.3-2.82.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP4 webkit2gtk3 0 2.34.3-2.82.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP5 webkit2gtk3 0 2.34.3-2.82.1
SUSE:Linux Enterprise Server for SAP Applications 15 webkit2gtk3 0 2.34.3-3.92.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP1 webkit2gtk3 0 2.34.3-3.92.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP2 webkit2gtk3 0 2.34.3-23.3
SUSE:Linux Enterprise Software Development Kit 12 SP5 webkit2gtk3 0 2.34.3-2.82.1
SUSE:Manager Proxy 4.1 webkit2gtk3 0 2.34.3-23.3
SUSE:Manager Retail Branch Server 4.1 webkit2gtk3 0 2.34.3-23.3
SUSE:Manager Server 4.1 webkit2gtk3 0 2.34.3-23.3
SUSE:OpenStack Cloud 8 webkit2gtk3 0 2.34.3-2.82.1
SUSE:OpenStack Cloud 9 webkit2gtk3 0 2.34.3-2.82.1
SUSE:OpenStack Cloud Crowbar 8 webkit2gtk3 0 2.34.3-2.82.1
SUSE:OpenStack Cloud Crowbar 9 webkit2gtk3 0 2.34.3-2.82.1
Ubuntu:16.04:LTS qtwebkit-opensource-src 0 No fix
Ubuntu:16.04:LTS qtwebkit-source 0 No fix
Ubuntu:16.04:LTS webkit2gtk 0 No fix
Ubuntu:16.04:LTS webkitgtk 0 No fix
Ubuntu:18.04:LTS qtwebkit-opensource-src 0 No fix
Ubuntu:18.04:LTS qtwebkit-source 0 No fix
Ubuntu:18.04:LTS webkit2gtk 0 2.30.3-0ubuntu0.18.04.1
Ubuntu:18.04:LTS webkitgtk 0 No fix
Ubuntu:20.04:LTS qtwebkit-opensource-src 0 No fix
Ubuntu:20.04:LTS webkit2gtk 0 2.30.3-0ubuntu0.20.04.1
Ubuntu:20.04:LTS wpewebkit 0 No fix
Ubuntu:22.04:LTS qtwebkit-opensource-src 0 No fix
Ubuntu:22.04:LTS wpewebkit 0 No fix
Ubuntu:24.04:LTS qtwebkit-opensource-src 0 No fix
Ubuntu:Pro:16.04:LTS qtwebkit-opensource-src 0 No fix
Ubuntu:Pro:16.04:LTS qtwebkit-source 0 No fix
Ubuntu:Pro:16.04:LTS webkit2gtk 0 No fix
Ubuntu:Pro:16.04:LTS webkitgtk 0 No fix
Ubuntu:Pro:18.04:LTS qtwebkit-opensource-src 0 No fix
Ubuntu:Pro:18.04:LTS qtwebkit-source 0 No fix
Ubuntu:Pro:18.04:LTS webkitgtk 0 No fix
Ubuntu:Pro:20.04:LTS qtwebkit-opensource-src 0 No fix
Ubuntu:Pro:20.04:LTS wpewebkit 0 No fix
Ubuntu:Pro:22.04:LTS qtwebkit-opensource-src 0 No fix
Ubuntu:Pro:22.04:LTS wpewebkit 0 No fix
Ubuntu:Pro:24.04:LTS qtwebkit-opensource-src 0 No fix
openSUSE:Leap 15.3 webkit2gtk3 0 2.34.3-23.3
openSUSE:Tumbleweed gtk3 0 2.32.4-1.1

Related vulnerabilities