CVE Vulnerabilities

CVE-2021-46195

Uncontrolled Recursion

Published: Jan 14, 2022 | Modified: Nov 21, 2024
CVSS 3.x
5.5
MEDIUM
Source:
NVD
CVSS:3.1/AV:L/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
3.3 LOW
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
Ubuntu
LOW
root.io logo minimus.io logo echo.ai logo

GCC v12.0 was discovered to contain an uncontrolled recursion via the component libiberty/rust-demangle.c. This vulnerability allows attackers to cause a Denial of Service (DoS) by consuming excessive CPU and memory resources.

Weakness

The product does not properly control the amount of recursion that takes place, consuming excessive resources, such as allocated memory or the program stack.

Affected Software

NameVendorStart VersionEnd Version
GccGnu12.0 (including)12.0 (including)
Red Hat Enterprise Linux 9RedHatmingw-gcc-0:12.0.1-11.2.el9*
Gcc-10Ubuntuhirsute*
Gcc-10Ubuntuimpish*
Gcc-11Ubuntudevel*
Gcc-11Ubuntuesm-apps/noble*
Gcc-11Ubuntuhirsute*
Gcc-11Ubuntuimpish*
Gcc-11Ubuntujammy*
Gcc-11Ubuntukinetic*
Gcc-11Ubuntulunar*
Gcc-11Ubuntumantic*
Gcc-11Ubuntunoble*
Gcc-11Ubuntuoracular*
Gcc-11Ubuntuplucky*
Gcc-11Ubuntuquesting*
Gcc-11Ubuntuupstream*
Gcc-12Ubuntubionic*
Gcc-12Ubuntutrusty*
Gcc-12Ubuntuupstream*
Gcc-12Ubuntuxenial*
Gcc-13Ubuntubionic*
Gcc-13Ubuntutrusty*
Gcc-13Ubuntuxenial*
Gcc-3.3Ubuntuhirsute*
Gcc-3.3Ubuntukinetic*
Gcc-3.3Ubuntutrusty*
Gcc-3.3Ubuntuxenial*
Gcc-4.4Ubuntutrusty*
Gcc-4.6Ubuntutrusty*
Gcc-4.7Ubuntutrusty*
Gcc-4.7Ubuntuxenial*
Gcc-4.7-armel-crossUbuntutrusty*
Gcc-4.7-armel-crossUbuntuxenial*
Gcc-4.7-armhf-crossUbuntutrusty*
Gcc-4.7-armhf-crossUbuntuxenial*
Gcc-4.8Ubuntutrusty*
Gcc-4.8Ubuntuxenial*
Gcc-4.8-arm64-crossUbuntutrusty*
Gcc-4.8-arm64-crossUbuntuxenial*
Gcc-4.8-armhf-crossUbuntutrusty*
Gcc-4.8-armhf-crossUbuntuxenial*
Gcc-4.8-powerpc-crossUbuntutrusty*
Gcc-4.8-powerpc-crossUbuntuxenial*
Gcc-4.8-ppc64el-crossUbuntutrusty*
Gcc-4.8-ppc64el-crossUbuntuxenial*
Gcc-4.9Ubuntuxenial*
Gcc-5Ubuntuxenial*
Gcc-5-crossUbuntubionic*
Gcc-5-crossUbuntuxenial*
Gcc-7Ubuntubionic*
Gcc-7Ubuntuhirsute*
Gcc-7-crossUbuntubionic*
Gcc-7-cross-portsUbuntubionic*
Gcc-8Ubuntubionic*
Gcc-8Ubuntuhirsute*
Gcc-8Ubuntuimpish*
Gcc-8-crossUbuntubionic*
Gcc-8-crossUbuntuhirsute*
Gcc-8-cross-portsUbuntubionic*
Gcc-8-cross-portsUbuntuhirsute*
Gcc-9Ubuntuhirsute*
Gcc-9Ubuntuimpish*
Gcc-9-crossUbuntuhirsute*
Gcc-9-crossUbuntuimpish*
Gcc-9-crossUbuntukinetic*
Gcc-9-cross-portsUbuntuhirsute*
Gcc-9-cross-portsUbuntuimpish*
Gcc-9-cross-portsUbuntukinetic*
Gcc-arm-linux-androideabiUbuntutrusty*
Gcc-arm-linux-androideabiUbuntuxenial*
Gcc-arm-none-eabiUbuntubionic*
Gcc-arm-none-eabiUbuntuhirsute*
Gcc-arm-none-eabiUbuntuimpish*
Gcc-arm-none-eabiUbuntukinetic*
Gcc-arm-none-eabiUbuntutrusty*
Gcc-arm-none-eabiUbuntuxenial*
Gcc-avrUbuntubionic*
Gcc-avrUbuntuhirsute*
Gcc-avrUbuntuimpish*
Gcc-avrUbuntukinetic*
Gcc-avrUbuntutrusty*
Gcc-avrUbuntuxenial*
Gcc-defaultsUbuntubionic*
Gcc-defaultsUbuntuhirsute*
Gcc-defaultsUbuntuimpish*
Gcc-defaultsUbuntukinetic*
Gcc-defaultsUbuntutrusty*
Gcc-defaultsUbuntuxenial*
Gcc-defaults-arm64-crossUbuntutrusty*
Gcc-defaults-armel-crossUbuntutrusty*
Gcc-defaults-armhf-crossUbuntutrusty*
Gcc-defaults-powerpc-crossUbuntutrusty*
Gcc-defaults-ppc64el-crossUbuntutrusty*
Gcc-h8300-hmsUbuntubionic*
Gcc-h8300-hmsUbuntuhirsute*
Gcc-h8300-hmsUbuntuimpish*
Gcc-h8300-hmsUbuntukinetic*
Gcc-h8300-hmsUbuntutrusty*
Gcc-h8300-hmsUbuntuxenial*
Gcc-i686-linux-androidUbuntutrusty*
Gcc-i686-linux-androidUbuntuxenial*
Gcc-m68hc1xUbuntubionic*
Gcc-m68hc1xUbuntuhirsute*
Gcc-m68hc1xUbuntuimpish*
Gcc-m68hc1xUbuntukinetic*
Gcc-m68hc1xUbuntutrusty*
Gcc-m68hc1xUbuntuxenial*
Gcc-mingw-w64Ubuntubionic*
Gcc-mingw-w64Ubuntuhirsute*
Gcc-mingw-w64Ubuntuimpish*
Gcc-mingw-w64Ubuntukinetic*
Gcc-mingw-w64Ubuntutrusty*
Gcc-mingw-w64Ubuntuxenial*
Gcc-msp430Ubuntubionic*
Gcc-msp430Ubuntuhirsute*
Gcc-msp430Ubuntuimpish*
Gcc-msp430Ubuntukinetic*
Gcc-msp430Ubuntutrusty*
Gcc-msp430Ubuntuxenial*
Gcc-optUbuntubionic*
Gcc-optUbuntuhirsute*
Gcc-optUbuntuimpish*
Gcc-optUbuntukinetic*
Gcc-optUbuntutrusty*
Gcc-optUbuntuxenial*
Gcc-snapshotUbuntubionic*
Gcc-snapshotUbuntuhirsute*
Gcc-snapshotUbuntuimpish*
Gcc-snapshotUbuntukinetic*
Gcc-snapshotUbuntutrusty*
Gcc-snapshotUbuntuxenial*
Gccgo-4.9Ubuntutrusty*
Gccgo-6Ubuntuxenial*

Potential Mitigations

References