CVE-2023-4039

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

State
Published
Severity
4.8 Medium
Published
Sep 13, 2023
Updated
Oct 14, 2026
Reserved
Aug 1, 2023

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.14.8 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:NArm

Weaknesses

  • CWE-693 Protection Mechanism Failure

Affected Products

ProductVersions
Arm GNU ToolchainArm Ltd
  • All versions where option -fstack-protector is usedAffected
GCCGNU
  • All versions of GCC that target AArch64 when option -fstack-protector is usedAffected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.