{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-97036","assignerOrgId":"1bb62c36-49e3-4200-9d77-64a1400537cc","state":"PUBLISHED","assignerShortName":"Go","dateReserved":"2026-09-23T23:05:04.987Z","datePublished":"2026-11-11T03:13:16.347Z","dateUpdated":"2026-11-11T03:13:16.347Z"},"containers":{"cna":{"providerMetadata":{"orgId":"1bb62c36-49e3-4200-9d77-64a1400537cc","shortName":"Go","dateUpdated":"2026-11-11T03:13:16.347Z"},"title":"Arbitrary code execution during build on darwin via \"-l to_library\" in cgo in cmd/go","descriptions":[{"lang":"en","value":"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":[{"vendor":"Go toolchain","product":"cmd/go","collectionURL":"https://pkg.go.dev","packageName":"cmd/go","versions":[{"version":"0","lessThan":"1.26.11","status":"affected","versionType":"semver"},{"version":"1.27.0-0","lessThan":"1.27.4","status":"affected","versionType":"semver"}],"platforms":["darwin"],"defaultStatus":"unaffected"}],"problemTypes":[{"descriptions":[{"lang":"en","description":"CWE-88: Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')"}]}],"references":[{"url":"https://go.dev/cl/862149"},{"url":"https://go.dev/issue/82574"},{"url":"https://groups.google.com/g/golang-announce/c/iY8TY0wWgbM"},{"url":"https://pkg.go.dev/vuln/GO-2026-6855"}],"credits":[{"lang":"en","value":"Ali Sherif (https://www.linkedin.com/in/ali-sherif-13812b276/)"}]}}}