CVE Vulnerabilities

CVE-2023-4039

Protection Mechanism Failure

Published: Sep 13, 2023 | Modified: Feb 13, 2025
CVSS 3.x
4.8
MEDIUM
Source:
NVD
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
CVSS 2.x
RedHat/V2
RedHat/V3
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:N
Ubuntu
LOW
root.io logo minimus.io logo echo.ai logo

DISPUTEDA failure in the -fstack-protector feature in GCC-based toolchains that target AArch64 allows an attacker to exploit an existing buffer overflow in dynamically-sized local variables in your application without this being detected. This stack-protector failure only applies to C99-style dynamically-sized local variables or those created using alloca(). The stack-protector operates as intended for statically-sized local variables.

The default behavior when the stack-protector detects an overflow is to terminate your application, resulting in controlled loss of availability. An attacker who can exploit a buffer overflow without triggering the stack-protector might be able to change program flow control to cause an uncontrolled loss of availability or to go further and affect confidentiality or integrity. NOTE: The GCC project argues that this is a missed hardening bug and not a vulnerability by itself.

Weakness

The product does not use or incorrectly uses a protection mechanism that provides sufficient defense against directed attacks against the product.

Affected Software

NameVendorStart VersionEnd Version
GccGnu*2023-09-12 (excluding)
Gcc-10Ubuntuesm-apps/jammy*
Gcc-10Ubuntuesm-apps/noble*
Gcc-10Ubuntuesm-infra/focal*
Gcc-10Ubuntufocal*
Gcc-10Ubuntujammy*
Gcc-10Ubuntulunar*
Gcc-10Ubuntumantic*
Gcc-10Ubuntunoble*
Gcc-10Ubuntuupstream*
Gcc-10-crossUbuntuesm-apps/noble*
Gcc-10-crossUbuntufocal*
Gcc-10-crossUbuntulunar*
Gcc-10-crossUbuntumantic*
Gcc-10-crossUbuntunoble*
Gcc-10-cross-mipsenUbuntufocal*
Gcc-10-cross-mipsenUbuntulunar*
Gcc-10-cross-mipsenUbuntumantic*
Gcc-10-cross-portsUbuntufocal*
Gcc-10-cross-portsUbuntulunar*
Gcc-10-cross-portsUbuntumantic*
Gcc-11Ubuntudevel*
Gcc-11Ubuntuesm-apps/noble*
Gcc-11Ubuntujammy*
Gcc-11Ubuntulunar*
Gcc-11Ubuntumantic*
Gcc-11Ubuntunoble*
Gcc-11Ubuntuoracular*
Gcc-11Ubuntuplucky*
Gcc-11Ubuntuquesting*
Gcc-11Ubuntuupstream*
Gcc-11-crossUbuntudevel*
Gcc-11-crossUbuntuesm-apps/noble*
Gcc-11-crossUbuntujammy*
Gcc-11-crossUbuntulunar*
Gcc-11-crossUbuntumantic*
Gcc-11-crossUbuntunoble*
Gcc-11-crossUbuntuoracular*
Gcc-11-crossUbuntuplucky*
Gcc-11-crossUbuntuquesting*
Gcc-11-cross-mipsenUbuntulunar*
Gcc-11-cross-mipsenUbuntumantic*
Gcc-11-cross-mipsenUbuntuoracular*
Gcc-11-cross-mipsenUbuntuplucky*
Gcc-11-cross-portsUbuntulunar*
Gcc-11-cross-portsUbuntumantic*
Gcc-11-cross-portsUbuntuoracular*
Gcc-11-cross-portsUbuntuplucky*
Gcc-12Ubuntudevel*
Gcc-12Ubuntuesm-apps/noble*
Gcc-12Ubuntujammy*
Gcc-12Ubuntulunar*
Gcc-12Ubuntumantic*
Gcc-12Ubuntunoble*
Gcc-12Ubuntuoracular*
Gcc-12Ubuntuplucky*
Gcc-12Ubuntuquesting*
Gcc-12Ubuntuupstream*
Gcc-12-crossUbuntudevel*
Gcc-12-crossUbuntuesm-apps/noble*
Gcc-12-crossUbuntujammy*
Gcc-12-crossUbuntulunar*
Gcc-12-crossUbuntumantic*
Gcc-12-crossUbuntunoble*
Gcc-12-crossUbuntuoracular*
Gcc-12-crossUbuntuplucky*
Gcc-12-crossUbuntuquesting*
Gcc-12-cross-mipsenUbuntulunar*
Gcc-12-cross-mipsenUbuntumantic*
Gcc-12-cross-mipsenUbuntuoracular*
Gcc-12-cross-mipsenUbuntuplucky*
Gcc-12-cross-portsUbuntulunar*
Gcc-12-cross-portsUbuntumantic*
Gcc-12-cross-portsUbuntuoracular*
Gcc-12-cross-portsUbuntuplucky*
Gcc-13Ubuntudevel*
Gcc-13Ubuntulunar*
Gcc-13Ubuntumantic*
Gcc-13Ubuntunoble*
Gcc-13Ubuntuoracular*
Gcc-13Ubuntuplucky*
Gcc-13Ubuntuquesting*
Gcc-13Ubuntuupstream*
Gcc-13-crossUbuntulunar*
Gcc-13-crossUbuntumantic*
Gcc-13-cross-portsUbuntudevel*
Gcc-13-cross-portsUbuntuesm-apps/noble*
Gcc-13-cross-portsUbuntulunar*
Gcc-13-cross-portsUbuntumantic*
Gcc-13-cross-portsUbuntunoble*
Gcc-13-cross-portsUbuntuoracular*
Gcc-13-cross-portsUbuntuplucky*
Gcc-13-cross-portsUbuntuquesting*
Gcc-4.4Ubuntutrusty*
Gcc-4.6Ubuntutrusty*
Gcc-4.7Ubuntuesm-apps/xenial*
Gcc-4.7Ubuntuesm-infra-legacy/trusty*
Gcc-4.7Ubuntutrusty*
Gcc-4.7Ubuntutrusty/esm*
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.8Ubuntubionic*
Gcc-4.8Ubuntuesm-apps/xenial*
Gcc-4.8Ubuntuesm-infra-legacy/trusty*
Gcc-4.8Ubuntutrusty*
Gcc-4.8Ubuntutrusty/esm*
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.9Ubuntuesm-apps/xenial*
Gcc-4.9Ubuntuxenial*
Gcc-4.9-crossUbuntubionic*
Gcc-4.9-crossUbuntuxenial*
Gcc-5Ubuntubionic*
Gcc-5Ubuntuesm-infra/xenial*
Gcc-5Ubuntuxenial*
Gcc-5-crossUbuntubionic*
Gcc-5-crossUbuntuxenial*
Gcc-5-cross-portsUbuntubionic*
Gcc-5-cross-portsUbuntuxenial*
Gcc-6Ubuntubionic*
Gcc-6-crossUbuntubionic*
Gcc-6-cross-portsUbuntubionic*
Gcc-7Ubuntubionic*
Gcc-7Ubuntufocal*
Gcc-7-crossUbuntubionic*
Gcc-7-cross-portsUbuntubionic*
Gcc-8Ubuntubionic*
Gcc-8Ubuntufocal*
Gcc-8-crossUbuntubionic*
Gcc-8-crossUbuntufocal*
Gcc-8-cross-portsUbuntubionic*
Gcc-8-cross-portsUbuntufocal*
Gcc-9Ubuntuesm-apps/noble*
Gcc-9Ubuntufocal*
Gcc-9Ubuntulunar*
Gcc-9Ubuntumantic*
Gcc-9Ubuntunoble*
Gcc-9Ubuntuupstream*
Gcc-9-crossUbuntuesm-apps/noble*
Gcc-9-crossUbuntufocal*
Gcc-9-crossUbuntulunar*
Gcc-9-crossUbuntumantic*
Gcc-9-crossUbuntunoble*
Gcc-9-cross-mipsenUbuntufocal*
Gcc-9-cross-mipsenUbuntulunar*
Gcc-9-cross-mipsenUbuntumantic*
Gcc-9-cross-portsUbuntufocal*
Gcc-9-cross-portsUbuntulunar*
Gcc-9-cross-portsUbuntumantic*
Gcc-arm-linux-androideabiUbuntutrusty*
Gcc-arm-linux-androideabiUbuntuxenial*
Gcc-arm-none-eabiUbuntubionic*
Gcc-arm-none-eabiUbuntufocal*
Gcc-arm-none-eabiUbuntulunar*
Gcc-arm-none-eabiUbuntumantic*
Gcc-arm-none-eabiUbuntuoracular*
Gcc-arm-none-eabiUbuntuplucky*
Gcc-arm-none-eabiUbuntutrusty*
Gcc-arm-none-eabiUbuntuxenial*
Gcc-avrUbuntubionic*
Gcc-avrUbuntufocal*
Gcc-avrUbuntulunar*
Gcc-avrUbuntumantic*
Gcc-avrUbuntuoracular*
Gcc-avrUbuntuplucky*
Gcc-avrUbuntutrusty*
Gcc-avrUbuntuxenial*
Gcc-defaultsUbuntubionic*
Gcc-defaultsUbuntulunar*
Gcc-defaultsUbuntumantic*
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-hmsUbuntufocal*
Gcc-h8300-hmsUbuntulunar*
Gcc-h8300-hmsUbuntumantic*
Gcc-h8300-hmsUbuntuoracular*
Gcc-h8300-hmsUbuntuplucky*
Gcc-h8300-hmsUbuntutrusty*
Gcc-h8300-hmsUbuntuxenial*
Gcc-i686-linux-androidUbuntutrusty*
Gcc-i686-linux-androidUbuntuxenial*
Gcc-m68hc1xUbuntubionic*
Gcc-m68hc1xUbuntufocal*
Gcc-m68hc1xUbuntutrusty*
Gcc-m68hc1xUbuntuxenial*
Gcc-mingw-w64Ubuntubionic*
Gcc-mingw-w64Ubuntufocal*
Gcc-mingw-w64Ubuntulunar*
Gcc-mingw-w64Ubuntumantic*
Gcc-mingw-w64Ubuntuoracular*
Gcc-mingw-w64Ubuntuplucky*
Gcc-mingw-w64Ubuntutrusty*
Gcc-mingw-w64Ubuntutrusty/esm*
Gcc-mingw-w64Ubuntuxenial*
Gcc-msp430Ubuntubionic*
Gcc-msp430Ubuntufocal*
Gcc-msp430Ubuntulunar*
Gcc-msp430Ubuntumantic*
Gcc-msp430Ubuntutrusty*
Gcc-msp430Ubuntuxenial*
Gcc-optUbuntubionic*
Gcc-optUbuntufocal*
Gcc-optUbuntulunar*
Gcc-optUbuntumantic*
Gcc-optUbuntuoracular*
Gcc-optUbuntuplucky*
Gcc-optUbuntutrusty*
Gcc-optUbuntuxenial*
Gcc-or1k-elfUbuntubionic*
Gcc-or1k-elfUbuntulunar*
Gcc-or1k-elfUbuntumantic*
Gcc-or1k-elfUbuntuoracular*
Gcc-or1k-elfUbuntuplucky*
Gcc-or1k-elfUbuntutrusty*
Gcc-or1k-elfUbuntuxenial*
Gcc-riscv64-unknown-elfUbuntubionic*
Gcc-riscv64-unknown-elfUbuntufocal*
Gcc-riscv64-unknown-elfUbuntulunar*
Gcc-riscv64-unknown-elfUbuntumantic*
Gcc-riscv64-unknown-elfUbuntuoracular*
Gcc-riscv64-unknown-elfUbuntuplucky*
Gcc-riscv64-unknown-elfUbuntutrusty*
Gcc-riscv64-unknown-elfUbuntuxenial*
Gcc-snapshotUbuntubionic*
Gcc-snapshotUbuntufocal*
Gcc-snapshotUbuntulunar*
Gcc-snapshotUbuntumantic*
Gcc-snapshotUbuntuoracular*
Gcc-snapshotUbuntuplucky*
Gcc-snapshotUbuntutrusty*
Gcc-snapshotUbuntuxenial*
Gcc-xtensa-lx106Ubuntubionic*
Gcc-xtensa-lx106Ubuntufocal*
Gcc-xtensa-lx106Ubuntulunar*
Gcc-xtensa-lx106Ubuntumantic*
Gcc-xtensa-lx106Ubuntutrusty*
Gcc-xtensa-lx106Ubuntuxenial*
Gccgo-4.9Ubuntutrusty*
Gccgo-4.9Ubuntutrusty/esm*
Gccgo-6Ubuntuxenial*

References