CVE-2020-13558
High · 8.8CVSS
8.8
EPSS
1.9%
Published
Mar 3, 2021
CISA due date
—
Cloudanix analysis
A bug in the way certain web browsers handle audio on a web page can let a malicious site take over the computer when someone visits it.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free condition in AudioSourceProviderGStreamer that permits arbitrary code execution when a malicious web page is rendered.
Why it matters to the business
Attackers can fully compromise user systems browsing the web with affected WebKitGTK versions, enabling theft of data, installation of persistent malware, or lateral movement; the flaw has been publicly exploitable for years with no vendor-supplied fixed package versions listed.
How an attack unfolds
An attacker hosts a specially crafted web page that triggers the use-after-free in the GStreamer audio source provider during page rendering; successful exploitation yields remote code execution and has been observed in campaigns associated with Candiru / SOURGUM / DevilsTongue and multiple Apple WebKit memory-corruption chains.
How to fix it
Upgrade WebKitGTK to a version containing the fix for the use-after-free (post-2.30.1 releases that address CVE-2020-13558); if packaged updates are unavailable, apply vendor backports or isolate affected applications behind stricter browser sandboxing and web filtering.
How to confirm the fix worked
Verify the installed WebKitGTK version is newer than the vulnerable release and test that the crafted proof-of-concept page no longer triggers the crash or code execution.
Typical attack path
- Attacker prepares malicious HTML that exercises AudioSourceProviderGStreamer
- Victim loads the page in an application using vulnerable WebKitGTK 2.30.1 or similar
- UAF is triggered during media handling, corrupting memory
- Attacker gains code execution and installs payload
How to detect it
Review web browser process crash logs and memory dumps for AudioSourceProviderGStreamer faults; correlate with network logs showing visits to previously unknown domains around the time of anomalous WebKit processes.
What your security team should do
- Immediately inventory all systems using WebKitGTK and prioritize patching given public exploit availability and multi-year exposure window
- Block or sandbox rendering of untrusted web content in applications dependent on the affected library
- Monitor threat intelligence for Candiru/SOURGUM activity leveraging WebKit memory issues
The record
A code execution vulnerability exists in the AudioSourceProviderGStreamer functionality of Webkit WebKitGTK 2.30.1. A specially crafted web page can lead to a use after free.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | LibRaw | 0 | 0.19.5-3.el8 |
| AlmaLinux:8 | LibRaw-devel | 0 | 0.19.5-3.el8 |
| AlmaLinux:8 | accountsservice | 0 | 0.6.55-2.el8 |
| AlmaLinux:8 | accountsservice-devel | 0 | 0.6.55-2.el8 |
| AlmaLinux:8 | accountsservice-libs | 0 | 0.6.55-2.el8 |
| AlmaLinux:8 | gdm | 0 | 1:40.0-15.el8 |
| AlmaLinux:8 | gnome-autoar | 0 | 0.2.3-2.el8 |
| AlmaLinux:8 | gnome-calculator | 0 | 3.28.2-2.el8 |
| AlmaLinux:8 | gnome-classic-session | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-control-center | 0 | 3.28.2-28.el8 |
| AlmaLinux:8 | gnome-control-center-filesystem | 0 | 3.28.2-28.el8 |
| AlmaLinux:8 | gnome-online-accounts | 0 | 3.28.2-3.el8 |
| AlmaLinux:8 | gnome-online-accounts-devel | 0 | 3.28.2-3.el8 |
| AlmaLinux:8 | gnome-session | 0 | 3.28.1-13.el8 |
| AlmaLinux:8 | gnome-session-kiosk-session | 0 | 3.28.1-13.el8 |
| AlmaLinux:8 | gnome-session-wayland-session | 0 | 3.28.1-13.el8 |
| AlmaLinux:8 | gnome-session-xsession | 0 | 3.28.1-13.el8 |
| AlmaLinux:8 | gnome-settings-daemon | 0 | 3.32.0-16.el8.alma |
| AlmaLinux:8 | gnome-shell | 0 | 3.32.2-40.el8 |
| AlmaLinux:8 | gnome-shell-extension-apps-menu | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-auto-move-windows | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-common | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-dash-to-dock | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-desktop-icons | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-disable-screenshield | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-drive-menu | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-gesture-inhibitor | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-horizontal-workspaces | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-launch-new-instance | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-native-window-placement | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-no-hot-corner | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-panel-favorites | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-places-menu | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-screenshot-window-sizer | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-systemMonitor | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-top-icons | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-updates-dialog | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-user-theme | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-window-grouper | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-window-list | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-windowsNavigator | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-shell-extension-workspace-indicator | 0 | 3.32.1-20.el8 |
| AlmaLinux:8 | gnome-software | 0 | 3.36.1-10.el8 |
| AlmaLinux:8 | gnome-software-devel | 0 | 3.36.1-10.el8 |
| AlmaLinux:8 | gsettings-desktop-schemas | 0 | 3.32.0-6.el8 |
| AlmaLinux:8 | gsettings-desktop-schemas-devel | 0 | 3.32.0-6.el8 |
| AlmaLinux:8 | gtk-update-icon-cache | 0 | 3.22.30-8.el8 |
| AlmaLinux:8 | gtk3 | 0 | 3.22.30-8.el8 |
| AlmaLinux:8 | gtk3-devel | 0 | 3.22.30-8.el8 |
| AlmaLinux:8 | gtk3-immodule-xim | 0 | 3.22.30-8.el8 |
| AlmaLinux:8 | mutter | 0 | 3.32.2-60.el8 |
| AlmaLinux:8 | mutter-devel | 0 | 3.32.2-60.el8 |
| AlmaLinux:8 | vino | 0 | 3.22.0-11.el8 |
| AlmaLinux:8 | webkit2gtk3 | 0 | 2.32.3-2.el8 |
| AlmaLinux:8 | webkit2gtk3-devel | 0 | 2.32.3-2.el8 |
| AlmaLinux:8 | webkit2gtk3-jsc | 0 | 2.32.3-2.el8 |
| AlmaLinux:8 | webkit2gtk3-jsc-devel | 0 | 2.32.3-2.el8 |
| Debian:10 | webkit2gtk | 0 | 2.30.5-1~deb10u1 |
| Debian:11 | webkit2gtk | 0 | 2.30.5-1 |
| Debian:11 | wpewebkit | 0 | 2.30.5-1 |
| Debian:12 | webkit2gtk | 0 | 2.30.5-1 |
| Debian:12 | wpewebkit | 0 | 2.30.5-1 |
| Debian:13 | webkit2gtk | 0 | 2.30.5-1 |
| Debian:13 | wpewebkit | 0 | 2.30.5-1 |
| Mageia:7 | webkit2 | 0 | 2.30.5-1.mga7 |
| Mageia:8 | webkit2 | 0 | 2.30.5-1.mga8 |
| Red Hat:enterprise_linux:8::appstream | LibRaw | 0 | 0:0.19.5-3.el8 |
| Red Hat:enterprise_linux:8::appstream | LibRaw-debuginfo | 0 | 0:0.19.5-3.el8 |
| Red Hat:enterprise_linux:8::appstream | LibRaw-debugsource | 0 | 0:0.19.5-3.el8 |
| Red Hat:enterprise_linux:8::appstream | LibRaw-devel | 0 | 0:0.19.5-3.el8 |
| Red Hat:enterprise_linux:8::appstream | LibRaw-samples-debuginfo | 0 | 0:0.19.5-3.el8 |
| Red Hat:enterprise_linux:8::appstream | gnome-autoar | 0 | 0:0.2.3-2.el8 |
| Red Hat:enterprise_linux:8::appstream | gnome-autoar-debuginfo | 0 | 0:0.2.3-2.el8 |
| Red Hat:enterprise_linux:8::appstream | gnome-autoar-debugsource | 0 | 0:0.2.3-2.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3 | 0 | 0:2.32.3-2.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-debuginfo | 0 | 0:2.32.3-2.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-debugsource | 0 | 0:2.32.3-2.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-devel | 0 | 0:2.32.3-2.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-devel-debuginfo | 0 | 0:2.32.3-2.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-jsc | 0 | 0:2.32.3-2.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-jsc-debuginfo | 0 | 0:2.32.3-2.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-jsc-devel | 0 | 0:2.32.3-2.el8 |
| Red Hat:enterprise_linux:8::appstream | webkit2gtk3-jsc-devel-debuginfo | 0 | 0:2.32.3-2.el8 |
| Red Hat:enterprise_linux:8::crb | LibRaw | 0 | 0:0.19.5-3.el8 |
| Red Hat:enterprise_linux:8::crb | LibRaw-debuginfo | 0 | 0:0.19.5-3.el8 |
| Red Hat:enterprise_linux:8::crb | LibRaw-debugsource | 0 | 0:0.19.5-3.el8 |
| Red Hat:enterprise_linux:8::crb | LibRaw-devel | 0 | 0:0.19.5-3.el8 |
| Red Hat:enterprise_linux:8::crb | LibRaw-samples-debuginfo | 0 | 0:0.19.5-3.el8 |
| Rocky Linux:8 | LibRaw | 0 | 0:0.19.5-3.el8 |
| Rocky Linux:8 | accountsservice | 0 | 0:0.6.55-2.el8 |
| Rocky Linux:8 | gdm | 0 | 1:40.0-15.el8 |
| Rocky Linux:8 | gnome-autoar | 0 | 0:0.2.3-2.el8 |
| Rocky Linux:8 | gnome-calculator | 0 | 0:3.28.2-2.el8 |
| Rocky Linux:8 | gnome-control-center | 0 | 0:3.28.2-28.el8 |
| Rocky Linux:8 | gnome-online-accounts | 0 | 0:3.28.2-3.el8 |
| Rocky Linux:8 | gnome-session | 0 | 0:3.28.1-13.el8 |
| Rocky Linux:8 | gnome-settings-daemon | 0 | 0:3.32.0-16.el8 |
| Rocky Linux:8 | gnome-shell | 0 | 0:3.32.2-40.el8 |
| Rocky Linux:8 | gnome-shell-extensions | 0 | 0:3.32.1-20.el8 |
| Rocky Linux:8 | gnome-software | 0 | 0:3.36.1-10.el8 |
| Rocky Linux:8 | gsettings-desktop-schemas | 0 | 0:3.32.0-6.el8 |
| Rocky Linux:8 | gtk3 | 0 | 0:3.22.30-8.el8 |
| Rocky Linux:8 | mutter | 0 | 0:3.32.2-60.el8 |
| Rocky Linux:8 | vino | 0 | 0:3.22.0-11.el8 |
| Rocky Linux:8 | webkit2gtk3 | 0 | 0:2.32.3-2.el8 |
| SUSE:Enterprise Storage 6 | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:HPE Helion OpenStack 8 | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-ESPOS | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:Linux Enterprise High Performance Computing 15-ESPOS | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:Linux Enterprise High Performance Computing 15-LTSS | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP2 | webkit2gtk3 | 0 | 2.30.5-3.12.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP2 | webkit2gtk3 | 0 | 2.30.5-3.12.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:Linux Enterprise Server 12 SP5 | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:Linux Enterprise Server 15 SP1-BCL | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:Linux Enterprise Server 15-LTSS | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:Linux Enterprise Server for SAP Applications 15 | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:Manager Proxy 4.0 | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:Manager Retail Branch Server 4.0 | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:Manager Server 4.0 | webkit2gtk3 | 0 | 2.30.5-3.66.1 |
| SUSE:OpenStack Cloud 8 | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:OpenStack Cloud 9 | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:OpenStack Cloud Crowbar 8 | webkit2gtk3 | 0 | 2.32.1-2.63.3 |
| SUSE:OpenStack Cloud Crowbar 9 | webkit2gtk3 | 0 | 2.32.1-2.63.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.30.5-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.5-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.2 | webkit2gtk3 | 0 | 2.30.5-lp152.2.10.5 |
| 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
- CVE-2021-30665 A memory corruption issue was addressed with improved state management. Also affects LibRaw
- CVE-2021-21775 A use-after-free vulnerability exists in the way certain events are processed for… Also affects LibRaw
- CVE-2021-1870 A logic issue was addressed with improved restrictions. Also affects LibRaw
- CVE-2021-1871 A logic issue was addressed with improved restrictions. Also affects LibRaw
- CVE-2021-1788 A use after free issue was addressed with improved memory management. Also affects LibRaw
- CVE-2021-1789 A type confusion issue was addressed with improved state handling. Also affects LibRaw
- CVE-2020-27918 A use after free issue was addressed with improved memory management. Also affects LibRaw