{"id":"GHSA-537w-q924-jhpm","revision":null,"records":[{"revision":"6cb69c483f664666bcadf97c9b0ef41f","observedAt":"2026-11-11T04:25:37.534+00:00","statement":{"source":"cve-program","id":"CVE-2026-97041","aliases":[],"title":"Host linker flag injection via //go:cgo_* directives in cmd/compile and cmd/link","description":"Building a malicious package containing \"//go:cgo_*\" compiler directives could inject arbitrary flags into the external linker invocation on ELF platforms. The compiler and linker did not reject commas in \"//go:cgo_import_dynamic\", \"//go:cgo_export_dynamic\", \"//go:cgo_export_static\", \"//go:cgo_import_static\", and \"//go:cgo_dynamic_linker\" directives, and the linker passed the dynamic linker path using \"-Wl,--dynamic-linker,<path>\". Furthermore, the two-argument form of \"//go:cgo_import_dynamic\" (which is permitted in non-cgo Go source files) could overwrite the external symbol name of a symbol already marked for cgo export. A symbol name or dynamic linker path containing a comma or leading \"@\" could split \"-Wl,--export-dynamic-symbol=\" or \"-Wl,--dynamic-linker,\" into arbitrary host linker flags or response file arguments. The compiler and linker now reject commas in \"//go:cgo_*\" symbol and dynamic linker directives, the linker passes \"-Wl,--dynamic-linker=<path>\", and \"cgo_import_dynamic\" no longer overwrites symbols exported via \"cgo_export_dynamic\" or \"cgo_export_static\".","state":0,"publishedAt":"2026-11-11T03:13:15.269+00:00","modifiedAt":"2026-11-11T03:13:15.269+00:00","affected":[{"ecosystem":"https://pkg.go.dev","name":"cmd/compile","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"Go toolchain\",\n                    \"product\": \"cmd/compile\",\n                    \"collectionURL\": \"https://pkg.go.dev\",\n                    \"packageName\": \"cmd/compile\",\n                    \"versions\": [\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"1.26.11\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"1.27.0-0\",\n                            \"lessThan\": \"1.27.4\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"defaultStatus\": \"unaffected\"\n                }"},{"ecosystem":"https://pkg.go.dev","name":"cmd/link","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"Go toolchain\",\n                    \"product\": \"cmd/link\",\n                    \"collectionURL\": \"https://pkg.go.dev\",\n                    \"packageName\": \"cmd/link\",\n                    \"versions\": [\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"1.26.11\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"1.27.0-0\",\n                            \"lessThan\": \"1.27.4\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"defaultStatus\": \"unaffected\"\n                }"}],"metrics":[],"references":["https://go.dev/cl/862154","https://go.dev/issue/82569","https://groups.google.com/g/golang-announce/c/iY8TY0wWgbM","https://pkg.go.dev/vuln/GO-2026-6850"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-97041","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-97041","identifiers":["CVE-2026-97041"]},"retained":false,"historicalAffected":[]},{"revision":"0a8ba221f6f04942a3bc0fc0c6ed1033","observedAt":"2026-11-15T05:33:34.715+00:00","statement":{"source":"euvd","id":"EUVD-2026-123104","aliases":["CVE-2026-97041","GHSA-537w-q924-jhpm"],"title":"Building a malicious package containing \"//go:cgo_*\" compiler directives could inject arbitrary flags into the external linker invocation on ELF platforms. The compiler and linker did not reject commas in \"//go:cgo_import_dynamic\", \"//go:cg…","description":"Building a malicious package containing \"//go:cgo_*\" compiler directives could inject arbitrary flags into the external linker invocation on ELF platforms. The compiler and linker did not reject commas in \"//go:cgo_import_dynamic\", \"//go:cgo_export_dynamic\", \"//go:cgo_export_static\", \"//go:cgo_import_static\", and \"//go:cgo_dynamic_linker\" directives, and the linker passed the dynamic linker path using \"-Wl,--dynamic-linker,<path>\". Furthermore, the two-argument form of \"//go:cgo_import_dynamic\" (which is permitted in non-cgo Go source files) could overwrite the external symbol name of a symbol already marked for cgo export. A symbol name or dynamic linker path containing a comma or leading \"@\" could split \"-Wl,--export-dynamic-symbol=\" or \"-Wl,--dynamic-linker,\" into arbitrary host linker flags or response file arguments. The compiler and linker now reject commas in \"//go:cgo_*\" symbol and dynamic linker directives, the linker passes \"-Wl,--dynamic-linker=<path>\", and \"cgo_import_dynamic\" no longer overwrites symbols exported via \"cgo_export_dynamic\" or \"cgo_export_static\".","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[],"references":["https://go.dev/cl/862154","https://go.dev/issue/82569","https://groups.google.com/g/golang-announce/c/iY8TY0wWgbM","https://pkg.go.dev/vuln/GO-2026-6850"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-123104","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Nov 11, 2026, 3:13:15 AM","dateUpdated":"Nov 11, 2026, 3:13:15 AM"},"relatedAdvisories":[{"id":"WID-SEC-W-2026-4370","title":"Golang Go: Mehrere Schwachstellen ermöglichen nicht spezifizierten Angriff","vulnerabilityIds":["CVE-2026-97033","CVE-2026-97034","CVE-2026-97035","CVE-2026-97036","CVE-2026-97037","CVE-2026-97038","CVE-2026-97039","CVE-2026-97040","CVE-2026-97041","CVE-2026-97042","CVE-2026-97043","CVE-2026-97054"]},{"id":"openSUSE-SU-2026:12529-1","title":"go1.26-1.26.11-1.1 on GA media","vulnerabilityIds":["CVE-2026-97033","CVE-2026-97034","CVE-2026-97035","CVE-2026-97036","CVE-2026-97037","CVE-2026-97038","CVE-2026-97039","CVE-2026-97040","CVE-2026-97041","CVE-2026-97042","CVE-2026-97043","CVE-2026-97054"]},{"id":"msrc_CVE-2026-97041","title":"Host linker flag injection via //go:cgo_* directives in cmd/compile and cmd/link","vulnerabilityIds":["CVE-2026-97041"]},{"id":"openSUSE-SU-2026:12540-1","title":"go1.27-1.27.4-1.1 on GA media","vulnerabilityIds":["CVE-2026-97033","CVE-2026-97034","CVE-2026-97035","CVE-2026-97036","CVE-2026-97037","CVE-2026-97038","CVE-2026-97039","CVE-2026-97040","CVE-2026-97041","CVE-2026-97042","CVE-2026-97043","CVE-2026-97054"]}],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2026-123104","identifiers":["EUVD-2026-123104","CVE-2026-97041","GHSA-537w-q924-jhpm"]},"retained":false,"historicalAffected":[]},{"revision":"97b0ab079d2749d79014b7a6dc1a4e76","observedAt":"2026-11-13T06:18:20.985+00:00","statement":{"source":"nvd","id":"CVE-2026-97041","aliases":[],"title":"Building a malicious package containing \"//go:cgo_*\" compiler directives could inject arbitrary flags into the external linker invocation on ELF platforms. The compiler and linker did not reject commas in \"//go:cgo_import_dynamic\", \"//go:cg…","description":"Building a malicious package containing \"//go:cgo_*\" compiler directives could inject arbitrary flags into the external linker invocation on ELF platforms. The compiler and linker did not reject commas in \"//go:cgo_import_dynamic\", \"//go:cgo_export_dynamic\", \"//go:cgo_export_static\", \"//go:cgo_import_static\", and \"//go:cgo_dynamic_linker\" directives, and the linker passed the dynamic linker path using \"-Wl,--dynamic-linker,<path>\". Furthermore, the two-argument form of \"//go:cgo_import_dynamic\" (which is permitted in non-cgo Go source files) could overwrite the external symbol name of a symbol already marked for cgo export. A symbol name or dynamic linker path containing a comma or leading \"@\" could split \"-Wl,--export-dynamic-symbol=\" or \"-Wl,--dynamic-linker,\" into arbitrary host linker flags or response file arguments. The compiler and linker now reject commas in \"//go:cgo_*\" symbol and dynamic linker directives, the linker passes \"-Wl,--dynamic-linker=<path>\", and \"cgo_import_dynamic\" no longer overwrites symbols exported via \"cgo_export_dynamic\" or \"cgo_export_static\".","state":0,"publishedAt":"2026-11-11T05:19:58.417+00:00","modifiedAt":"2026-11-12T22:09:39.233+00:00","affected":[],"metrics":[],"references":["https://go.dev/cl/862154","https://go.dev/issue/82569","https://groups.google.com/g/golang-announce/c/iY8TY0wWgbM","https://pkg.go.dev/vuln/GO-2026-6850"],"sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-97041","license":"NIST NVD usage terms; underlying source attribution retained","enrichment":{"sourceStatus":"Awaiting Analysis","weaknesses":[],"productCriteria":[],"sourceDates":{"published":"2026-11-11T05:19:58.417","lastModified":"2026-11-12T22:09:39.233"},"relatedAdvisories":[],"note":"NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON."},"key":"nvd:CVE-2026-97041","identifiers":["CVE-2026-97041"]},"retained":false,"historicalAffected":[]},{"revision":"f58da8ddd2cc418ab2bb444a01631407","observedAt":"2026-11-11T04:27:36.086+00:00","statement":{"source":"osv","id":"GO-2026-6850","aliases":["CVE-2026-97041"],"title":"Host linker flag injection via //go:cgo_* directives in cmd/compile and cmd/link","description":"Building a malicious package containing \"//go:cgo_*\" compiler directives could inject arbitrary flags into the external linker invocation on ELF platforms.\n\nThe compiler and linker did not reject commas in \"//go:cgo_import_dynamic\", \"//go:cgo_export_dynamic\", \"//go:cgo_export_static\", \"//go:cgo_import_static\", and \"//go:cgo_dynamic_linker\" directives, and the linker passed the dynamic linker path using \"-Wl,--dynamic-linker,<path>\". Furthermore, the two-argument form of \"//go:cgo_import_dynamic\" (which is permitted in non-cgo Go source files) could overwrite the external symbol name of a symbol already marked for cgo export. A symbol name or dynamic linker path containing a comma or leading \"@\" could split \"-Wl,--export-dynamic-symbol=\" or \"-Wl,--dynamic-linker,\" into arbitrary host linker flags or response file arguments.\n\nThe compiler and linker now reject commas in \"//go:cgo_*\" symbol and dynamic linker directives, the linker passes \"-Wl,--dynamic-linker=<path>\", and \"cgo_import_dynamic\" no longer overwrites symbols exported via \"cgo_export_dynamic\" or \"cgo_export_static\".","state":0,"publishedAt":"2026-11-11T02:51:11+00:00","modifiedAt":"2026-11-11T03:15:14.8039314+00:00","affected":[{"ecosystem":"Go","name":"toolchain","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"1.26.11"},{"kind":"introduced","version":"1.27.0-0"},{"kind":"fixed","version":"1.27.4"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[],"references":["https://go.dev/cl/862154","https://go.dev/issue/82569","https://groups.google.com/g/golang-announce/c/iY8TY0wWgbM"],"sourceUrl":"https://osv.dev/vulnerability/GO-2026-6850","license":"OSV · upstream source license applies","key":"osv:GO-2026-6850","identifiers":["GO-2026-6850","CVE-2026-97041"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-11-15T19:44:19.9938399+00:00","complete":true,"records":1781,"lastAttemptAt":"2026-11-15T19:44:19.9938399+00:00","lastSuccessAt":"2026-11-15T19:44:20.2016227+00:00","error":null,"lastVerifiedAt":"2026-11-15T19:44:20.2016237+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-7de4d7559a5263003f03d9f70577ab06f92ba4178309f26fce53e22a4a959294-6fc3c2ba902d8763be7b1141e9be97dc9202b7023001a80bc4ce5ca58164e97c","complete":true,"records":425849,"lastAttemptAt":"2026-11-15T19:44:16.7564889+00:00","lastSuccessAt":"2026-11-15T19:44:16.7314012+00:00","error":null,"lastVerifiedAt":"2026-11-15T19:44:16.7564889+00:00","snapshotPublishedAt":"2026-11-15T19:27:02+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-e20648f5e49d4ef2b794bd9578c389bd","complete":false,"records":13821,"lastAttemptAt":"2026-11-15T19:55:07.4704496+00:00","lastSuccessAt":"2026-11-15T19:55:06.45+00:00","error":"52 identifier lookups failed; latest failures include AccessDenied (HTTP 403). Other identifiers were checked independently.","lastVerifiedAt":"2026-11-15T19:55:06.45+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13822,"expectedIdentifiers":13874,"failedIdentifiers":52},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-11-15T19:44:19.9938399+00:00","complete":true,"records":1125,"lastAttemptAt":"2026-11-15T19:44:19.9938399+00:00","lastSuccessAt":"2026-11-15T19:44:20.2027927+00:00","error":null,"lastVerifiedAt":"2026-11-15T19:44:20.2027932+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-9caea03f945849429dd63b61fcc163ed","complete":true,"records":13833,"lastAttemptAt":"2026-11-15T19:46:14.9136905+00:00","lastSuccessAt":"2026-11-15T19:46:14.909+00:00","error":null,"lastVerifiedAt":"2026-11-15T19:46:14.909+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13874,"expectedIdentifiers":13874,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-64eea06dbd27de8464d5dbce1b78cc794cc59e2d901516ae0d3ea76e624cdae0","complete":true,"records":9955,"lastAttemptAt":"2026-11-15T19:44:19.5897026+00:00","lastSuccessAt":"2026-11-14T13:57:23.1208135+00:00","error":null,"lastVerifiedAt":"2026-11-15T19:44:19.5897026+00:00","snapshotPublishedAt":"2026-11-14T13:17:57+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-f4424d7d4861b1af1404bd15abcb83f295dcd003412a9340ca99dc8200aa148a","complete":true,"records":2014,"lastAttemptAt":"2026-11-15T19:44:18.729666+00:00","lastSuccessAt":"2026-11-13T19:57:08.2864435+00:00","error":null,"lastVerifiedAt":"2026-11-15T19:44:18.729666+00:00","snapshotPublishedAt":"2026-11-13T19:33:10+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-6086d649bcb454cdf302d7d9275177bda73550e1b6e446b3520e9b6266d3582c","complete":true,"records":3148,"lastAttemptAt":"2026-11-15T19:44:19.9211863+00:00","lastSuccessAt":"2026-11-15T11:05:17.1034234+00:00","error":null,"lastVerifiedAt":"2026-11-15T19:44:19.9211863+00:00","snapshotPublishedAt":"2026-11-15T10:03:04+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-ff18f36f13fcca3a20a3fb9274b59b8872d18869a99071730e1e79b625c8f612","complete":true,"records":232475,"lastAttemptAt":"2026-11-15T19:44:18.8782423+00:00","lastSuccessAt":"2026-11-15T11:05:10.4195883+00:00","error":null,"lastVerifiedAt":"2026-11-15T19:44:18.8782423+00:00","snapshotPublishedAt":"2026-11-15T10:33:06+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}