Description
On Darwin, building a malicious package that uses cgo could cause arbitrary code execution when using the Apple linker due to passing "-l to_library <path>" in a "#cgo LDFLAGS" directive. The Apple linker recombines the separated arguments "-l" and "to_library" into "-lto_library", which loads an arbitrary LTO plugin dynamic library at link time. The go command now disallows "-l" followed by "to_library" in "#cgo LDFLAGS", rejects "-lazy_library", "-lazy_framework", "-load_hidden", "-library", and "-library-path", and checks recombined "-l" arguments against disallowed linker flags and patterns.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Go toolchain | cmd/go | 0 <1.26.11 | — |
| Go toolchain | cmd/go | 1.27.0-0 <1.27.4 | — |
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.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | golang-1.26 +1 | No fix yet | — |
| Debian 13 | golang-1.24 | No fix yet | — |
| Debian 12 | golang-1.19 | No fix yet | — |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | go1.26 | 1.26.11-1.1 | openSUSE-SU-2026:12529-1 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Go | toolchain | < 1.26.11 · >= 1.27.0-0, < 1.27.4 | 1.26.11, 1.27.4 | GO-2026-6855 |
Advisories 2
- openSUSE-SU-2026:12529-1 go1.26-1.26.11-1.1 on GA media SUSE / openSUSE Security Updates · Nov 12, 2026
- WID-SEC-2026-4370 Golang Go: Mehrere Schwachstellen ermöglichen nicht spezifizierten Angriff BSI CERT-Bund (WID) · Nov 11, 2026