CVE-2020-10018
Critical · 9.8CVSS
9.8
EPSS
5.0%
Published
Mar 2, 2020
CISA due date
—
Cloudanix analysis
A bug in software that displays web pages could let attackers take over a computer just by getting it to visit a harmful webpage.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free memory corruption in WebKitGTK and WPE WebKit leading to arbitrary code execution via improved memory handling fix in 2.28.0.
Why it matters to the business
Remote attackers can fully compromise systems processing web content, risking data theft or malware deployment on any organization using affected web rendering libraries.
How an attack unfolds
An attacker delivers specially crafted web content to a target application using vulnerable WebKitGTK or WPE WebKit; the content triggers a use-after-free during memory operations, enabling memory corruption that is turned into arbitrary code execution. Listed threat actors such as Candiru have been associated with similar WebKit issues.
How to fix it
Upgrade WebKitGTK and WPE WebKit to version 2.28.0 or later; no other mitigations fully address the root cause.
How to confirm the fix worked
Confirm installed WebKitGTK/WPE WebKit version is at least 2.28.0 and run regression tests against known use-after-free triggers if available.
Typical attack path
- Serve or link to malicious web content targeting WebKitGTK/WPE WebKit <= 2.26.4
- Induce the use-after-free through specific rendering and memory lifecycle sequences
- Leverage resulting memory corruption to achieve arbitrary code execution
How to detect it
Examine application crash logs and memory dumps from processes using WebKitGTK/WPE for signs of use-after-free exploitation; correlate with threat actor patterns such as Candiru activity if relevant.
What your security team should do
- Immediately update all instances of WebKitGTK and WPE WebKit to 2.28.0+
- Scan inventories for any downstream dependents relying on these libraries
- Review network logs for suspicious web content delivery patterns associated with WebKit exploitation
The record
WebKitGTK through 2.26.4 and WPE WebKit through 2.26.4 (which are the versions right before 2.28.0) contains a memory corruption issue (use-after-free) that may lead to arbitrary code execution. This issue has been fixed in 2.28.0 with improved memory handling.
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.4-1~deb10u2 |
| Debian:11 | webkit2gtk | 0 | 2.28.0-2 |
| Debian:11 | wpewebkit | 0 | 2.28.0-1 |
| Debian:12 | webkit2gtk | 0 | 2.28.0-2 |
| Debian:12 | wpewebkit | 0 | 2.28.0-1 |
| Debian:13 | webkit2gtk | 0 | 2.28.0-2 |
| Debian:13 | wpewebkit | 0 | 2.28.0-1 |
| Debian:14 | webkit2gtk | 0 | 2.28.0-2 |
| Debian:14 | wpewebkit | 0 | 2.28.0-1 |
| Mageia:7 | webkit2 | 0 | 2.28.0-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:Enterprise Storage 6 | webkit2gtk3 | 0 | 2.34.3-3.92.1 |
| SUSE:HPE Helion OpenStack 8 | webkit2gtk3 | 0 | 2.28.1-2.50.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-ESPOS | webkit2gtk3 | 0 | 2.28.1-3.49.2 |
| 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.28.1-3.49.2 |
| SUSE:Linux Enterprise High Performance Computing 15-LTSS | webkit2gtk3 | 0 | 2.34.3-3.92.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP1 | webkit2gtk3 | 0 | 2.28.1-3.49.2 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP1 | webkit2gtk3 | 0 | 2.28.1-3.49.2 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | webkit2gtk3 | 0 | 2.34.3-2.82.1 |
| 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-BCL | webkit2gtk3 | 0 | 2.34.3-2.82.1 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | webkit2gtk3 | 0 | 2.34.3-2.82.1 |
| SUSE:Linux Enterprise Server 12 SP4 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | webkit2gtk3 | 0 | 2.34.3-2.82.1 |
| SUSE:Linux Enterprise Server 12 SP5 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| 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-LTSS | webkit2gtk3 | 0 | 2.28.1-3.49.2 |
| SUSE:Linux Enterprise Server 15-LTSS | webkit2gtk3 | 0 | 2.34.3-3.92.1 |
| 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 SP3 | webkit2gtk3 | 0 | 2.34.3-2.82.1 |
| 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 SP4 | webkit2gtk3 | 0 | 2.34.3-2.82.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | webkit2gtk3 | 0 | 2.28.1-2.50.3 |
| 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.28.1-3.49.2 |
| 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 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 Software Development Kit 12 SP5 | webkit2gtk3 | 0 | 2.34.3-2.82.1 |
| 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 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.28.1-2.50.3 |
| 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.28.0-0ubuntu0.18.04.3 |
| 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.28.0-1ubuntu2 |
| 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.1 | webkit2gtk3 | 0 | 2.28.1-lp151.2.15.2 |
| 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