{
  "affected": [
    {
      "database_specific": {
        "unresolved_ranges": [
          {
            "events": [
              {
                "introduced": "4.1"
              },
              {
                "last_affected": "8.0"
              }
            ]
          }
        ]
      },
      "ranges": [
        {
          "database_specific": {
            "versions": [
              {
                "introduced": "4.1"
              },
              {
                "last_affected": "8"
              }
            ]
          },
          "events": [
            {
              "introduced": "dcaac250fcc1a1ce514d97613e4547aded83033c"
            },
            {
              "last_affected": "341e59fef8d4b9c86f1c95abfe3ed60482293f23"
            }
          ],
          "repo": "https://github.com/gcc-mirror/gcc",
          "type": "GIT"
        }
      ]
    }
  ],
  "details": "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.",
  "id": "CVE-2018-12886",
  "modified": "2026-03-13T21:55:06.377604739Z",
  "published": "2019-05-22T19:29:00.297Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/config/arm/arm-protos.h?revision=266379\u0026view=markup"
    },
    {
      "type": "EVIDENCE",
      "url": "https://www.gnu.org/software/gcc/gcc-8/changes.html"
    }
  ],
  "severity": [
    {
      "score": "CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ]
}