CVE-2019-8812
High · 8.8CVSS
8.8
EPSS
1.9%
Published
Dec 18, 2019
CISA due date
—
Cloudanix analysis
A flaw in how Apple devices display web pages could let attackers take control of phones, tablets, or computers simply by getting a user to visit a malicious website.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Remote Code Execution
- Component
- Web Framework
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Multiple memory corruption flaws in WebKit allow processing of maliciously crafted web content to result in arbitrary code execution.
Why it matters to the business
Unpatched Apple devices can be silently compromised when users visit attacker-controlled websites, enabling theft of data, installation of persistent malware, or further network pivoting with minimal user interaction.
How an attack unfolds
An attacker crafts a malicious web page that triggers memory corruption in WebKit during rendering; the victim is lured to the page via phishing or compromised sites, and successful exploitation grants arbitrary code execution in the browser process.
How to fix it
Upgrade affected products to the fixed releases: iOS 13.2 / iPadOS 13.2, tvOS 13.2, watchOS 6.1, Safari 13.0.3, or iTunes for Windows 12.10.2. Apply updates through standard Apple update mechanisms and remove older versions from endpoints.
How to confirm the fix worked
Verify installed versions of iOS, iPadOS, tvOS, watchOS, Safari, and iTunes match or exceed the fixed releases listed above; re-scan devices after patching and confirm absence of the vulnerable WebKit components.
Typical attack path
- Identify or create a memory-corruption trigger in WebKit
- Host the crafted content on a web server under attacker control
- Deliver a link or embed the page to targeted users
- Victim browser processes the content and triggers the flaw
- Attacker payload executes with the privileges of the browser process
How to detect it
Examine browser process crash logs, WebKit sandbox violation entries, and endpoint telemetry for unexpected code execution or memory access violations on Apple devices; correlate with web proxy logs showing visits to suspicious domains around the time of any anomalous process behavior.
What your security team should do
- Immediately push the listed Apple updates to all managed devices
- Block or monitor traffic to known malicious domains used in WebKit exploitation campaigns
- Review browser telemetry and crash reports for signs of unexpected WebKit terminations
- Enforce automatic updates for all Apple software across the fleet
The record
Multiple memory corruption issues were addressed with improved memory handling. This issue is fixed in iOS 13.2 and iPadOS 13.2, tvOS 13.2, watchOS 6.1, Safari 13.0.3, iTunes for Windows 12.10.2. Processing maliciously crafted web content may lead to arbitrary code execution.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | LibRaw-devel | 0 | 0.19.5-2.el8 |
| AlmaLinux:8 | PackageKit | 0 | 1.1.12-6.el8 |
| AlmaLinux:8 | PackageKit-command-not-found | 0 | 1.1.12-6.el8 |
| AlmaLinux:8 | PackageKit-cron | 0 | 1.1.12-6.el8 |
| AlmaLinux:8 | PackageKit-glib | 0 | 1.1.12-6.el8 |
| AlmaLinux:8 | PackageKit-glib-devel | 0 | 1.1.12-6.el8 |
| AlmaLinux:8 | PackageKit-gstreamer-plugin | 0 | 1.1.12-6.el8 |
| AlmaLinux:8 | PackageKit-gtk3-module | 0 | 1.1.12-6.el8 |
| AlmaLinux:8 | dleyna-renderer | 0 | 0.6.0-3.el8 |
| AlmaLinux:8 | frei0r-devel | 0 | 1.6.1-7.el8 |
| AlmaLinux:8 | frei0r-plugins | 0 | 1.6.1-7.el8 |
| AlmaLinux:8 | frei0r-plugins-opencv | 0 | 1.6.1-7.el8 |
| AlmaLinux:8 | gnome-remote-desktop | 0 | 0.1.8-3.el8 |
| AlmaLinux:8 | gtk-doc | 0 | 1.28-2.el8 |
| AlmaLinux:8 | gvfs | 0 | 1.36.2-10.el8 |
| AlmaLinux:8 | libsoup | 0 | 2.62.3-2.el8 |
| AlmaLinux:8 | libsoup-devel | 0 | 2.62.3-2.el8 |
| AlmaLinux:8 | mutter-devel | 0 | 3.32.2-48.el8 |
| AlmaLinux:8 | nautilus | 0 | 3.28.1-14.el8 |
| AlmaLinux:8 | nautilus-devel | 0 | 3.28.1-14.el8 |
| AlmaLinux:8 | pipewire | 0 | 0.3.6-1.el8 |
| AlmaLinux:8 | pipewire-devel | 0 | 0.3.6-1.el8 |
| AlmaLinux:8 | pipewire-doc | 0 | 0.3.6-1.el8 |
| AlmaLinux:8 | pipewire-libs | 0 | 0.3.6-1.el8 |
| AlmaLinux:8 | pipewire-utils | 0 | 0.3.6-1.el8 |
| AlmaLinux:8 | pipewire0.2-devel | 0 | 0.2.7-6.el8 |
| AlmaLinux:8 | pipewire0.2-libs | 0 | 0.2.7-6.el8 |
| AlmaLinux:8 | potrace | 0 | 1.15-3.el8 |
| AlmaLinux:8 | pygobject3-devel | 0 | 3.28.3-2.el8 |
| AlmaLinux:8 | python3-gobject | 0 | 3.28.3-2.el8 |
| AlmaLinux:8 | python3-gobject-base | 0 | 3.28.3-2.el8 |
| AlmaLinux:8 | tracker | 0 | 2.1.5-2.el8 |
| AlmaLinux:8 | tracker-devel | 0 | 2.1.5-2.el8 |
| AlmaLinux:8 | vte-profile | 0 | 0.52.4-2.el8 |
| AlmaLinux:8 | vte291 | 0 | 0.52.4-2.el8 |
| AlmaLinux:8 | vte291-devel | 0 | 0.52.4-2.el8 |
| AlmaLinux:8 | webrtc-audio-processing | 0 | 0.3-9.el8 |
| AlmaLinux:8 | xdg-desktop-portal-gtk | 0 | 1.6.0-1.el8 |
| Debian:10 | webkit2gtk | 0 | 2.26.2-1~deb10+1 |
| Debian:11 | webkit2gtk | 0 | 2.26.2-1 |
| Debian:12 | webkit2gtk | 0 | 2.26.2-1 |
| Debian:13 | webkit2gtk | 0 | 2.26.2-1 |
| Mageia:7 | webkit2 | 0 | 2.26.2-1.mga7 |
| Red Hat:enterprise_linux:7::client | webkitgtk4 | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::client | webkitgtk4-debuginfo | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::client | webkitgtk4-devel | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::client | webkitgtk4-doc | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::client | webkitgtk4-jsc | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::client | webkitgtk4-jsc-devel | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::computenode | webkitgtk4 | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::computenode | webkitgtk4-debuginfo | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::computenode | webkitgtk4-devel | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::computenode | webkitgtk4-doc | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::computenode | webkitgtk4-jsc | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::computenode | webkitgtk4-jsc-devel | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::server | webkitgtk4 | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::server | webkitgtk4-debuginfo | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::server | webkitgtk4-devel | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::server | webkitgtk4-doc | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::server | webkitgtk4-jsc | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::server | webkitgtk4-jsc-devel | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::workstation | webkitgtk4 | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::workstation | webkitgtk4-debuginfo | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::workstation | webkitgtk4-devel | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::workstation | webkitgtk4-doc | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::workstation | webkitgtk4-jsc | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:7::workstation | webkitgtk4-jsc-devel | 0 | 0:2.28.2-2.el7 |
| Red Hat:enterprise_linux:8::appstream | LibRaw | 0 | 0:0.19.5-2.el8 |
| Red Hat:enterprise_linux:8::appstream | LibRaw-debuginfo | 0 | 0:0.19.5-2.el8 |
| Red Hat:enterprise_linux:8::appstream | LibRaw-debugsource | 0 | 0:0.19.5-2.el8 |
| Red Hat:enterprise_linux:8::appstream | LibRaw-devel | 0 | 0:0.19.5-2.el8 |
| Red Hat:enterprise_linux:8::appstream | LibRaw-samples-debuginfo | 0 | 0:0.19.5-2.el8 |
| Red Hat:enterprise_linux:8::appstream | gnome-settings-daemon | 0 | 0:3.32.0-11.el8 |
| Red Hat:enterprise_linux:8::appstream | gnome-settings-daemon-debuginfo | 0 | 0:3.32.0-11.el8 |
| Red Hat:enterprise_linux:8::appstream | gnome-settings-daemon-debugsource | 0 | 0:3.32.0-11.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3 | 0 | 0:2.28.4-1.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-debuginfo | 0 | 0:2.28.4-1.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-debugsource | 0 | 0:2.28.4-1.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-devel | 0 | 0:2.28.4-1.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-devel-debuginfo | 0 | 0:2.28.4-1.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-jsc | 0 | 0:2.28.4-1.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-jsc-debuginfo | 0 | 0:2.28.4-1.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-jsc-devel | 0 | 0:2.28.4-1.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-jsc-devel-debuginfo | 0 | 0:2.28.4-1.el8 |
| Red Hat:enterprise_linux:8::crb | LibRaw | 0 | 0:0.19.5-2.el8 |
| Red Hat:enterprise_linux:8::crb | LibRaw-debuginfo | 0 | 0:0.19.5-2.el8 |
| Red Hat:enterprise_linux:8::crb | LibRaw-debugsource | 0 | 0:0.19.5-2.el8 |
| Red Hat:enterprise_linux:8::crb | LibRaw-devel | 0 | 0:0.19.5-2.el8 |
| Red Hat:enterprise_linux:8::crb | LibRaw-samples-debuginfo | 0 | 0:0.19.5-2.el8 |
| Rocky Linux:8 | LibRaw | 0 | 0:0.19.5-2.el8 |
| Rocky Linux:8 | PackageKit | 0 | 0:1.1.12-6.el8 |
| Rocky Linux:8 | dleyna-renderer | 0 | 0:0.6.0-3.el8 |
| Rocky Linux:8 | frei0r-plugins | 0 | 0:1.6.1-7.el8 |
| Rocky Linux:8 | gnome-remote-desktop | 0 | 0:0.1.8-3.el8 |
| Rocky Linux:8 | gnome-session | 0 | 0:3.28.1-10.el8 |
| Rocky Linux:8 | gsettings-desktop-schemas | 0 | 0:3.32.0-5.el8 |
| Rocky Linux:8 | gtk3 | 0 | 0:3.22.30-6.el8 |
| Rocky Linux:8 | libsoup | 0 | 0:2.62.3-2.el8 |
| Rocky Linux:8 | pipewire | 0 | 0:0.3.6-1.el8 |
| Rocky Linux:8 | pipewire0.2 | 0 | 0:0.2.7-6.el8 |
| Rocky Linux:8 | potrace | 0 | 0:1.15-3.el8 |
| Rocky Linux:8 | pygobject3 | 0 | 0:3.28.3-2.el8 |
| Rocky Linux:8 | tracker | 0 | 0:2.1.5-2.el8 |
| Rocky Linux:8 | vte291 | 0 | 0:0.52.4-2.el8 |
| Rocky Linux:8 | webrtc-audio-processing | 0 | 0:0.3-9.el8 |
| Rocky Linux:8 | xdg-desktop-portal-gtk | 0 | 0:1.6.0-1.el8 |
| SUSE:Enterprise Storage 5 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:HPE Helion OpenStack 8 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Module for Basesystem 15 | webkit2gtk3 | 0 | 2.26.2-3.34.3 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP1 | webkit2gtk3 | 0 | 2.26.2-3.34.3 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 | webkit2gtk3 | 0 | 2.26.2-3.34.3 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP1 | webkit2gtk3 | 0 | 2.26.2-3.34.3 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Server 12 SP2-LTSS | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Server 12 SP4 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Server 12 SP5 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Workstation Extension 12 SP4 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:OpenStack Cloud 7 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:OpenStack Cloud 8 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:OpenStack Cloud Crowbar 8 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| 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.26.2-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.26.2-1 |
| Ubuntu:22.04:LTS | qtwebkit-opensource-src | 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:22.04:LTS | qtwebkit-opensource-src | 0 | No fix |
| Ubuntu:Pro:24.04:LTS | qtwebkit-opensource-src | 0 | No fix |
| openSUSE:Leap 15.0 | webkit2gtk3 | 0 | 2.26.2-lp150.2.28.1 |
| openSUSE:Leap 15.1 | webkit2gtk3 | 0 | 2.26.2-lp151.2.9.1 |
| openSUSE:Tumbleweed | gtk3 | 0 | 2.32.4-1.1 |
Related vulnerabilities
- CVE-2021-30663 An integer overflow was addressed with improved input validation. Also affects LibRaw-devel
- CVE-2021-30665 A memory corruption issue was addressed with improved state management. Also affects LibRaw-devel
- CVE-2021-21775 A use-after-free vulnerability exists in the way certain events are processed for… Also affects LibRaw-devel
- CVE-2021-1870 A logic issue was addressed with improved restrictions. Also affects LibRaw-devel
- CVE-2021-1871 A logic issue was addressed with improved restrictions. Also affects LibRaw-devel
- CVE-2021-1788 A use after free issue was addressed with improved memory management. Also affects LibRaw-devel
- CVE-2021-1789 A type confusion issue was addressed with improved state handling. Also affects LibRaw-devel
- CVE-2020-13558 A code execution vulnerability exists in the AudioSourceProviderGStreamer functionality… Also affects LibRaw-devel