stack_protect_prologue in cfgexpand.c and stack_protect_epilogue in function.c in GNU Compiler Collection (GCC) 4.1 through 8 (under certain circumstances) generate instruction sequences when targeting ARM targets that spill the address of the stack protector guard, which allows an attacker to bypass the protection of -fstack-protector, -fstack-protector-all, -fstack-protector-strong, and -fstack-protector-explicit against stack overflow by controlling what the stack canary is compared against.
The product generates an error message that includes sensitive information about its environment, users, or associated data.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Gcc | Gnu | 4.1 (including) | 8.0 (including) |
| Gcc-4.8 | Ubuntu | bionic | * |
| Gcc-4.8 | Ubuntu | cosmic | * |
| Gcc-4.8 | Ubuntu | esm-apps/xenial | * |
| Gcc-4.8 | Ubuntu | esm-infra-legacy/trusty | * |
| Gcc-4.8 | Ubuntu | trusty | * |
| Gcc-4.8 | Ubuntu | trusty/esm | * |
| Gcc-4.8 | Ubuntu | xenial | * |
| Gcc-4.9 | Ubuntu | esm-apps/xenial | * |
| Gcc-4.9 | Ubuntu | trusty | * |
| Gcc-4.9 | Ubuntu | xenial | * |
| Gcc-6 | Ubuntu | bionic | * |
| Gcc-6 | Ubuntu | cosmic | * |
| Gcc-6 | Ubuntu | disco | * |
| Gcc-6 | Ubuntu | esm-apps/bionic | * |
| Gcc-6 | Ubuntu | trusty | * |
| Gcc-7 | Ubuntu | bionic | * |
| Gcc-7 | Ubuntu | cosmic | * |
| Gcc-7 | Ubuntu | disco | * |
| Gcc-7 | Ubuntu | eoan | * |
| Gcc-7 | Ubuntu | esm-infra/bionic | * |
| Gcc-7 | Ubuntu | focal | * |
| Gcc-7 | Ubuntu | groovy | * |
| Gcc-7 | Ubuntu | hirsute | * |
| Gcc-8 | Ubuntu | bionic | * |
| Gcc-8 | Ubuntu | cosmic | * |
| Gcc-8 | Ubuntu | disco | * |
| Gcc-8 | Ubuntu | eoan | * |
| Gcc-8 | Ubuntu | focal | * |
| Gcc-8 | Ubuntu | groovy | * |
| Gcc-8 | Ubuntu | hirsute | * |
| Gcc-8 | Ubuntu | impish | * |
| Gcc-9 | Ubuntu | upstream | * |
| Gcc-arm-none-eabi | Ubuntu | bionic | * |
| Gcc-arm-none-eabi | Ubuntu | cosmic | * |
| Gcc-arm-none-eabi | Ubuntu | disco | * |
| Gcc-arm-none-eabi | Ubuntu | eoan | * |
| Gcc-arm-none-eabi | Ubuntu | focal | * |
| Gcc-arm-none-eabi | Ubuntu | groovy | * |
| Gcc-arm-none-eabi | Ubuntu | hirsute | * |
| Gcc-arm-none-eabi | Ubuntu | impish | * |
| Gcc-arm-none-eabi | Ubuntu | kinetic | * |
| Gcc-arm-none-eabi | Ubuntu | lunar | * |
| Gcc-arm-none-eabi | Ubuntu | mantic | * |
| Gcc-arm-none-eabi | Ubuntu | oracular | * |
| Gcc-arm-none-eabi | Ubuntu | trusty | * |
| Gcc-arm-none-eabi | Ubuntu | xenial | * |
| Gcc-snapshot | Ubuntu | bionic | * |
| Gcc-snapshot | Ubuntu | cosmic | * |
| Gcc-snapshot | Ubuntu | disco | * |
| Gcc-snapshot | Ubuntu | eoan | * |
| Gcc-snapshot | Ubuntu | esm-apps/bionic | * |
| Gcc-snapshot | Ubuntu | groovy | * |
| Gcc-snapshot | Ubuntu | hirsute | * |
| Gcc-snapshot | Ubuntu | impish | * |
| Gcc-snapshot | Ubuntu | kinetic | * |
| Gcc-snapshot | Ubuntu | lunar | * |
| Gcc-snapshot | Ubuntu | mantic | * |
| Gcc-snapshot | Ubuntu | oracular | * |
| Gcc-snapshot | Ubuntu | trusty | * |
| Gcc-snapshot | Ubuntu | xenial | * |