Skip to content
OpenAdvisories
Medium · 4.8 CVE-2023-4039 EUVD-2023-53931

GCC's-fstack-protector fails to guard dynamically-sized local variables on AArch64

Published Sep 13, 2023 · Updated Oct 14, 2026 · Assigned by Arm

Vendor: Arm Vendor: GNU Product: Arm GNU Toolchain Product: gcc Package: gcc Package: gcc Package: gcc Package: gcc-10 Package: gcc-10-cross Package: gcc-10-cross-ports Package: gcc-11 Package: gcc-11 Package: gcc-11-cross Package: gcc-11-cross-ports Package: gcc-12 Package: gcc-12 Package: gcc-12 Package: gcc-12-cross Package: gcc-12-cross-ports Package: gcc-13 Package: gcc-4.7 Package: gcc-4.7-armel-cross Package: gcc-4.7-armhf-cross Package: gcc-4.8 Package: gcc-4.8-arm64-cross Package: gcc-4.8-armhf-cross Package: gcc-4.8-powerpc-cross Package: gcc-4.8-ppc64el-cross Package: gcc-4.9 Package: gcc-4.9-cross Package: gcc-5 Package: gcc-5-cross Package: gcc-5-cross-ports Package: gcc-6 Package: gcc-6 Package: gcc-6-cross Package: gcc-6-cross-ports Package: gcc-7 Package: gcc-7-cross Package: gcc-7-cross-ports Package: gcc-8 Package: gcc-8-cross Package: gcc-8-cross-ports Package: gcc-9 Package: gcc-9-cross Package: gcc-9-cross-ports Package: gcc-arm-linux-androideabi Package: gcc-arm-none-eabi Package: gcc-avr Package: gcc-doc Package: gcc-h8300-hms Package: gcc-i686-linux-android Package: gcc-m68hc1x Package: gcc-mingw-w64 Package: gcc-msp430 Package: gcc-opt Package: gcc-snapshot Package: gccgo-4.9 Package: gccgo-6 Package: gfortran Package: libatomic Package: libgcc Package: libgccjit Package: libgccjit-dev Package: libgfortran Package: libgomp Package: libquadmath Package: libssp Package: libstdc++ Package: libstdc++-dev Ecosystem: Alpine Ecosystem: Azure Linux Ecosystem: Debian Ecosystem: Ubuntu Ecosystem: Wolfi

Description

**DISPUTED**A 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.

Affected products

VendorProductAffectedFixed
Arm Arm GNU Toolchain All versions where option -fstack-protector is used —
GNU GCC All versions of GCC that target AArch64 when option -fstack-protector is used —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 gcc-12 12.3.0-9 —
Debian 14 gcc-13 13.2.0-4 —
Debian 13 gcc-12 12.3.0-9 —
Debian 13 gcc-13 13.2.0-4 —
Debian 12 gcc-11 No fix yet —
Debian 12 gcc-12 12.2.0-14+deb12u1 —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 gcc-opt +3 No fix yet —
Ubuntu 26.04 LTS gcc-opt +3 No fix yet —
Ubuntu 25.10 gcc-opt +3 No fix yet —
Ubuntu 24.04 LTS gcc-10 10.5.0-4ubuntu2 —
Ubuntu 24.04 LTS gcc-10-cross 23ubuntu2 —
Ubuntu 24.04 LTS gcc-11 11.4.0-4ubuntu1 —
Ubuntu 24.04 LTS gcc-11-cross 21ubuntu2 —
Ubuntu 24.04 LTS gcc-12-cross 19ubuntu2 —
Ubuntu 24.04 LTS gcc-9 9.5.0-6ubuntu2 —
Ubuntu 24.04 LTS gcc-9-cross 29ubuntu2 —
Ubuntu 24.04 LTS gcc-opt +5 No fix yet —
Ubuntu 22.04 LTS gcc-10 10.5.0-1ubuntu1~22.04.2 USN-7700-1
Ubuntu 22.04 LTS gcc-11 11.4.0-1ubuntu1~22.04.2 USN-7700-1
Ubuntu 22.04 LTS gcc-12 12.3.0-1ubuntu1~22.04.2 USN-7700-1
Ubuntu 22.04 LTS gcc-9 +10 No fix yet —
Show 6 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 20.04 LTS gcc-7 +8 No fix yet —
Ubuntu 18.04 LTS gcc-5 +14 No fix yet —
Ubuntu 16.04 LTS gcc-4.7 +21 No fix yet —
Ubuntu 14.04 LTS gcc-4.7 +3 No fix yet —
Ubuntu Pro 20.04 LTS gcc-10 10.5.0-1ubuntu1~20.04.1+esm1 USN-7700-1
Ubuntu Pro 20.04 LTS gcc-9 +1 No fix yet —
Ubuntu Pro 16.04 LTS gcc-5 +1 No fix yet —
ReleasePackageFixed inAdvisory
SLES 15 SP5 cross-nvptx-gcc13 13.2.1+git7813-150000.1.3.2 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
SLES 15 SP5 gcc12 +1 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLES 15 SP5 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
SLES 15 SP4 cross-nvptx-gcc13 13.2.1+git7813-150000.1.3.2 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
SLES 15 SP4 gcc12 +2 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLES 15 SP4 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
SLES 15 SP4 gcc7 7.5.0+r278197-150000.4.35.1 SUSE-SU-2023:3686-1
SLES 15 SP3 gcc12 +1 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLES 15 SP3 gcc13 +1 13.2.1+git7813-150000.1.6.1 SUSE-SU-2023:4458-1
SLES 15 SP2 gcc12 +1 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLES 15 SP2 gcc13 +1 13.2.1+git7813-150000.1.6.1 SUSE-SU-2023:4458-1
SLES 15 SP1 gcc12 +1 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLES 15 SP1 gcc13 +1 13.2.1+git7813-150000.1.6.1 SUSE-SU-2023:4458-1
Show 23 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES 12 SP5 gcc12 12.3.0+git1204-1.13.1 SUSE-SU-2023:3640-1
SLES 12 SP5 gcc13 13.2.1+git7813-1.10.1 SUSE-SU-2023:4480-1
SLES 12 SP5 gcc7 7.5.0+r278197-13.1 SUSE-SU-2023:3662-1
SLES 12 gcc12 +1 12.3.0+git1204-1.13.1 SUSE-SU-2023:3640-1
SLES 12 gcc13 +1 13.2.1+git7813-1.10.1 SUSE-SU-2023:4480-1
SLES 12 gcc7 +1 7.5.0+r278197-13.1 SUSE-SU-2023:3662-1
SLES for SAP 15 SP3 gcc12 +1 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLES for SAP 15 SP3 gcc13 +1 13.2.1+git7813-150000.1.6.1 SUSE-SU-2023:4458-1
SLES for SAP 15 SP2 gcc12 +1 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLES for SAP 15 SP2 gcc13 +1 13.2.1+git7813-150000.1.6.1 SUSE-SU-2023:4458-1
SLES for SAP 15 SP1 gcc12 +1 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLES for SAP 15 SP1 gcc13 +1 13.2.1+git7813-150000.1.6.1 SUSE-SU-2023:4458-1
SLES for SAP 15 SP1 gcc7 +1 7.5.0+r278197-150000.4.35.1 SUSE-SU-2023:3686-1
SLES for SAP 12 SP5 gcc12 12.3.0+git1204-1.13.1 SUSE-SU-2023:3640-1
SLES for SAP 12 SP5 gcc13 13.2.1+git7813-1.10.1 SUSE-SU-2023:4480-1
SLES for SAP 12 SP5 gcc7 7.5.0+r278197-13.1 SUSE-SU-2023:3662-1
SLE Micro 5.5 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2024:0045-1, SUSE-SU-2023:4162-1
SLE Micro 5.4 gcc12 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLE Micro 5.4 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2024:0045-1, SUSE-SU-2023:4162-1
SLE Micro 5.3 gcc12 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLE Micro 5.3 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2024:0045-1, SUSE-SU-2023:4162-1
SLE Micro 5.2 gcc12 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLE Micro 5.2 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
SLE Micro 5.1 gcc12 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLE Micro 5.1 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
SLE HPC 15 SP3 gcc12 +1 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLE HPC 15 SP3 gcc13 +1 13.2.1+git7813-150000.1.6.1 SUSE-SU-2023:4458-1
SLE HPC 15 SP2 gcc12 +1 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLE HPC 15 SP2 gcc13 +1 13.2.1+git7813-150000.1.6.1 SUSE-SU-2023:4458-1
SLE HPC 15 SP1 gcc12 +2 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SLE HPC 15 SP1 gcc13 +1 13.2.1+git7813-150000.1.6.1 SUSE-SU-2023:4458-1
SUSE Manager Server 4.2 gcc12 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SUSE Manager Server 4.2 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4162-1
SUSE Manager Proxy 4.2 gcc12 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SUSE Manager Proxy 4.2 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4162-1
SUSE Linux Enterprise Installer Updates 15 SP5 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
SUSE Linux Enterprise Installer Updates 15 SP4 gcc12 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SUSE Linux Enterprise Installer Updates 15 SP4 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
SUSE Linux Enterprise Installer Updates 15 SP3 gcc12 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SUSE Linux Enterprise Installer Updates 15 SP3 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
SUSE Linux Enterprise Installer Updates 15 SP2 gcc12 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SUSE Linux Enterprise Installer Updates 15 SP2 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
SUSE Linux Enterprise Installer Updates 15 SP1 gcc12 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
SUSE Linux Enterprise Installer Updates 15 SP1 gcc13 13.2.1+git7813-150000.1.6.1 SUSE-SU-2023:4458-1
SUSE Enterprise Storage 7.1 gcc13 +1 13.2.1+git7813-150000.1.6.1 SUSE-SU-2023:4458-1
SUSE Enterprise Storage 7 gcc12 +1 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed gcc12 12.3.0+git1204-2.1 openSUSE-SU-2024:13233-1
openSUSE Tumbleweed gcc13 13.2.1+git7813-1.1 openSUSE-SU-2024:13234-1
openSUSE Tumbleweed gcc7 7.5.0+r278197-15.1 openSUSE-SU-2024:13235-1
openSUSE Leap 15.5 cross-nvptx-gcc13 13.2.1+git7813-150000.1.3.2 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
openSUSE Leap 15.5 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
openSUSE Leap 15.4 cross-nvptx-gcc13 13.2.1+git7813-150000.1.3.2 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
openSUSE Leap 15.4 gcc12 +2 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
openSUSE Leap 15.4 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
openSUSE Leap Micro 5.4 gcc12 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
openSUSE Leap Micro 5.4 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
openSUSE Leap Micro 5.3 gcc12 12.3.0+git1204-150000.1.16.1 SUSE-SU-2023:3661-1
openSUSE Leap Micro 5.3 gcc13 13.2.1+git7813-150000.1.3.3 SUSE-SU-2023:4458-1, SUSE-SU-2023:4162-1
ReleasePackageFixed inAdvisory
Alpine v3.24 gcc 13.2.1_git20231014-r0 —
Alpine v3.23 gcc 13.2.1_git20231014-r0 —
Alpine v3.22 gcc 13.2.1_git20231014-r0 —
Alpine v3.21 gcc 13.2.1_git20231014-r0 —
Alpine v3.20 gcc 13.2.1_git20231014-r0 —
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 gcc 13.2.1_git20231014-r0 —

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 cpp +33 11.4.1-2.amzn2023.0.2 ALAS2023-2023-342
Amazon Linux 2 cpp +25 7.3.1-17.amzn2 ALAS2-2023-2245
Amazon Linux 2 cpp10 +13 10.5.0-1.amzn2.0.2 ALAS2-2023-2244

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 gcc 13.2.0-7 —
Azure Linux 2 (CBL-Mariner) gcc 11.2.0-6 —

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 8 cpp +25 11.3.1-4.3.0.4.el9 ELSA-2023-12788
Oracle Linux 8 cross-gcc-common +8 11.2.1-5.0.2.el8 ELSA-2023-28766, ELSA-2023-28765
Oracle Linux 8 gcc-arc-linux-gnu +49 12.1.1-2.0.4.el9 ELSA-2023-28765
Oracle Linux 8 gcc-gdb-plugin +1 8.5.0-18.0.5.el8 ELSA-2023-12788
Oracle Linux 8 libasan6 +17 11.2.1-9.1.0.6.el8 ELSA-2023-12788
Oracle Linux 8 libasan8 +19 12.2.1-7.4.0.2.el9 ELSA-2023-12788

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling gcc +12 13.2.0-r3 —
Wolfi rolling gcc-12 12.3.0-r4 —
Wolfi rolling gcc-6 6.5.0-r5 —

Advisories 24

References