You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
BA2012 (Stack cookie modification) passes on Windows using the internal linker #2238
What BinSkim reports for the internal-linker build is not a normal “stack cookie preserved” pass; it is specifically:
Result ID: Pass_NoLoadConfig
Message meaning: the binary does not contain a load config table, so BinSkim assumes it was either built with an older toolchain or is not subject to the relevant /GS-style check
The PE metadata matches that:
Internal linker: LoadConfigTableRVA: 0x0
External linker: nonzero LoadConfigTableRVA, but SecurityCookie: 0x0
External linker: load config table exists, but no usable cookie is found → BA2012 = error (Error_CouldNotLocateCookie)
So the short answer is: BA2012 passes on internal-linker Go binaries because BinSkim interprets the absence of a load-config table as a benign/pass condition, not because it found a valid stack cookie implementation.
changed the title [-]Investigate why BA2012 (Stack cookie modification) passes on Windows using the internal linker[/-][+]BA2012 (Stack cookie modification) passes on Windows using the internal linker[/+]on Apr 17, 2026
Activity
[-]Investigate why BA2012 (Stack cookie modification) passes on Windows using the internal linker[/-][+]BA2012 (Stack cookie modification) passes on Windows using the internal linker[/+]qmuntal commentedon Apr 17, 2026
This has been fixed on Go 1.27 (see https://go-review.googlesource.com/c/go/+/756680). Now BinSkim will correctly fail BA2012.