CVE Vulnerabilities

CVE-2021-45481

Missing Release of Memory after Effective Lifetime

Published: Dec 25, 2021 | Modified: Nov 21, 2024
CVSS 3.x
6.5
MEDIUM
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
CVSS 2.x
4.3 MEDIUM
AV:N/AC:M/Au:N/C:N/I:N/A:P
RedHat/V2
RedHat/V3
6.5 MODERATE
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Ubuntu
MEDIUM
root.io logo minimus.io logo echo.ai logo

In WebKitGTK before 2.32.4, there is incorrect memory allocation in WebCore::ImageBufferCairoImageSurfaceBackend::create, leading to a segmentation violation and application crash, a different vulnerability than CVE-2021-30889.

Weakness

The product does not sufficiently track and release allocated memory after it has been used, making the memory unavailable for reallocation and reuse.

Affected Software

NameVendorStart VersionEnd Version
WebkitgtkWebkitgtk*2.32.4 (excluding)
Red Hat Enterprise Linux 7 Extended Lifecycle SupportRedHatwebkitgtk4-0:2.48.3-2.el7_9*
Red Hat Enterprise Linux 8RedHatwebkit2gtk3-0:2.34.6-1.el8*
Qtwebkit-opensource-srcUbuntubionic*
Qtwebkit-opensource-srcUbuntudevel*
Qtwebkit-opensource-srcUbuntuesm-apps/bionic*
Qtwebkit-opensource-srcUbuntuesm-apps/focal*
Qtwebkit-opensource-srcUbuntuesm-apps/jammy*
Qtwebkit-opensource-srcUbuntuesm-apps/noble*
Qtwebkit-opensource-srcUbuntuesm-infra/xenial*
Qtwebkit-opensource-srcUbuntufocal*
Qtwebkit-opensource-srcUbuntuimpish*
Qtwebkit-opensource-srcUbuntujammy*
Qtwebkit-opensource-srcUbuntukinetic*
Qtwebkit-opensource-srcUbuntulunar*
Qtwebkit-opensource-srcUbuntumantic*
Qtwebkit-opensource-srcUbuntunoble*
Qtwebkit-opensource-srcUbuntutrusty*
Qtwebkit-opensource-srcUbuntuupstream*
Qtwebkit-opensource-srcUbuntuxenial*
Qtwebkit-sourceUbuntubionic*
Qtwebkit-sourceUbuntuesm-apps/bionic*
Qtwebkit-sourceUbuntuesm-apps/xenial*
Qtwebkit-sourceUbuntutrusty*
Qtwebkit-sourceUbuntuxenial*
Webkit2gtkUbuntubionic*
Webkit2gtkUbuntudevel*
Webkit2gtkUbuntuesm-infra/bionic*
Webkit2gtkUbuntuesm-infra/focal*
Webkit2gtkUbuntuesm-infra/xenial*
Webkit2gtkUbuntufocal*
Webkit2gtkUbuntuimpish*
Webkit2gtkUbuntujammy*
Webkit2gtkUbuntukinetic*
Webkit2gtkUbuntulunar*
Webkit2gtkUbuntumantic*
Webkit2gtkUbuntunoble*
Webkit2gtkUbuntuupstream*
Webkit2gtkUbuntuxenial*
WebkitgtkUbuntubionic*
WebkitgtkUbuntuesm-apps/bionic*
WebkitgtkUbuntuesm-apps/xenial*
WebkitgtkUbuntutrusty*
WebkitgtkUbuntuxenial*
WpewebkitUbuntuesm-apps/focal*
WpewebkitUbuntuesm-apps/jammy*
WpewebkitUbuntufocal*
WpewebkitUbuntuimpish*
WpewebkitUbuntujammy*
WpewebkitUbuntutrusty*

Potential Mitigations

  • Choose a language or tool that provides automatic memory management, or makes manual memory management less error-prone.
  • For example, glibc in Linux provides protection against free of invalid pointers.
  • When using Xcode to target OS X or iOS, enable automatic reference counting (ARC) [REF-391].
  • To help correctly and consistently manage memory when programming in C++, consider using a smart pointer class such as std::auto_ptr (defined by ISO/IEC ISO/IEC 14882:2003), std::shared_ptr and std::unique_ptr (specified by an upcoming revision of the C++ standard, informally referred to as C++ 1x), or equivalent solutions such as Boost.

References